Commit 021b3787 authored by 谢希宇's avatar 谢希宇

Submit by Strive

Submit Date 2021/03/02
parent a8f19b8f
......@@ -17,6 +17,8 @@ import java.io.IOException;
@Slf4j
public class LogoConfig {
private static String QRCODE_LOGO_DIR = SystemConfig.p.getProperty("userfiles.qrcodedir");
/**
* 设置 logo
*
......@@ -36,7 +38,7 @@ public class LogoConfig {
/**
* 读取Logo图片
*/
BufferedImage logo = ImageIO.read(new File(SystemConfig.p.getProperty("userfiles.qrcodedir") + File.separator + "logo.png"));
BufferedImage logo = ImageIO.read(new File(QRCODE_LOGO_DIR + File.separator + "logo.png"));
//开始绘制图片
g2.drawImage(logo, matrixWidth / 5 * 2, matrixHeigh / 5 * 2, matrixWidth / 5, matrixHeigh / 5, null);//绘制
......
......@@ -277,6 +277,7 @@
'<ul class="dropdown-menu" role="menu" style="min-width: 100px;">';
html += '<li>#if($shiro.hasPermission("qy:checkresult:view"))<a href="#springUrl("/a/checkresult/form?pageType=View&id=' + a + '")" class="btn green">查看</a>#end</li>';
html += '<li>#if($shiro.hasPermission("qy:checkresult:edit"))<a href="#springUrl("/a/checkresult/form?pageType=Edit&id=' + a + '")" class="btn green">修改</a>#end</li>';
html += '<li>#if($shiro.hasPermission("qy:checkresult:edit"))<a href="javascript:void(0)" onclick="removeData('+a+')" class="btn green">删除</a>#end</li>';
html += '</ul></div>';
return html;
}
......@@ -312,7 +313,9 @@
$.ajax({
type: "POST",
url: "#springUrl('/a/checkresult/delete')",
data: {id: data},
data: {id: data,
_csrfheader: csrfheader.value,
_csrf: csrftoken.value},
dataType: "json",
success: function (data) {
if (data.errorNo == 0) {
......
......@@ -134,7 +134,7 @@
<select id="count" parameterType="java.util.Map" resultType="java.lang.Integer">
SELECT COUNT(1) FROM t_aidea_coupon_record t
LEFT JOIN t_aidea_check_coupon c ON t.coupon_id = c.id
LEFT JOIN wx_mp_fanss f ON f.openid = t.openid
LEFT JOIN wx_mp_fanss f ON f.openid = t.openid AND f.delflag = '0'
<include refid="sqlWhere"/>
</select>
......
......@@ -77,9 +77,9 @@ public class CouponrecordServiceImpl extends GenericServiceImpl<Couponrecord> im
couponrecord.setCouponId(checkcoupon.getId());
couponrecord.setAccountsId(accountId);
couponrecord.setQrcode(QrcodeUtil.generateQrcode(no));//生成二维码
couponrecord.setExpireDate(dateCalculation(new Date(), Integer.parseInt(checkcoupon.getExpireMonth())));//延期使用时间(可核销开始时间)
couponrecord.setTakeEffectDate(dateCalculation(new Date(), Integer.parseInt(checkcoupon.getExpireMonth()) + Integer.parseInt(checkcoupon.getExpireMonth())));//延期使用时间(可核销开始时间)
couponrecord.setInvalidDate(dateCalculation(new Date(), Integer.parseInt(checkcoupon.getExpireMonth()) + Integer.parseInt(checkcoupon.getExpireMonth())));
couponrecord.setTakeEffectDate(dateCalculation(new Date(), Integer.parseInt(checkcoupon.getExpireMonth())));//延期使用时间(可核销开始时间)
couponrecord.setExpireDate(dateCalculation(new Date(), Integer.parseInt(checkcoupon.getExpireMonth()) + Integer.parseInt(checkcoupon.getTakeEffectMonth())));//失效时间
couponrecord.setInvalidDate(dateCalculation(new Date(), Integer.parseInt(checkcoupon.getExpireMonth()) + Integer.parseInt(checkcoupon.getTakeEffectMonth())));//失效时间
couponrecordMapper.save(couponrecord);
}
if (number >= 6) {//赠送第二张
......@@ -97,9 +97,9 @@ public class CouponrecordServiceImpl extends GenericServiceImpl<Couponrecord> im
couponrecord.setCouponId(checkcoupon.getId());
couponrecord.setAccountsId(accountId);
couponrecord.setQrcode(QrcodeUtil.generateQrcode(no));//生成二维码
couponrecord.setExpireDate(dateCalculation(couponrecord_one.getTakeEffectDate(), Integer.parseInt(checkcoupon.getExpireMonth())));//延期使用时间(可核销开始时间)
couponrecord.setTakeEffectDate(dateCalculation(couponrecord_one.getTakeEffectDate(), Integer.parseInt(checkcoupon.getExpireMonth()) + Integer.parseInt(checkcoupon.getExpireMonth())));//延期使用时间(可核销开始时间)
couponrecord.setInvalidDate(dateCalculation(couponrecord_one.getTakeEffectDate(), Integer.parseInt(checkcoupon.getExpireMonth()) + Integer.parseInt(checkcoupon.getExpireMonth())));
couponrecord.setTakeEffectDate(dateCalculation(couponrecord_one.getTakeEffectDate(), Integer.parseInt(checkcoupon.getExpireTwoMonth())));//延期使用时间(可核销开始时间)
couponrecord.setExpireDate(dateCalculation(couponrecord_one.getTakeEffectDate(), Integer.parseInt(checkcoupon.getExpireTwoMonth()) + Integer.parseInt(checkcoupon.getTakeEffectMonth())));//失效时间
couponrecord.setInvalidDate(dateCalculation(couponrecord_one.getTakeEffectDate(), Integer.parseInt(checkcoupon.getExpireTwoMonth()) + Integer.parseInt(checkcoupon.getTakeEffectMonth())));//失效时间
couponrecordMapper.save(couponrecord);
}
} else {
......@@ -119,9 +119,9 @@ public class CouponrecordServiceImpl extends GenericServiceImpl<Couponrecord> im
couponrecord.setCouponId(checkcoupon.getId());
couponrecord.setAccountsId(accountId);
couponrecord.setQrcode(QrcodeUtil.generateQrcode(no));//生成二维码
couponrecord.setExpireDate(dateCalculation(new Date(), Integer.parseInt(checkcoupon.getExpireMonth())));//延期使用时间(可核销开始时间)
couponrecord.setTakeEffectDate(dateCalculation(new Date(), Integer.parseInt(checkcoupon.getExpireMonth()) + Integer.parseInt(checkcoupon.getExpireMonth())));//延期使用时间(可核销开始时间)
couponrecord.setInvalidDate(dateCalculation(new Date(), Integer.parseInt(checkcoupon.getExpireMonth()) + Integer.parseInt(checkcoupon.getExpireMonth())));
couponrecord.setTakeEffectDate(dateCalculation(new Date(), Integer.parseInt(checkcoupon.getExpireMonth())));//延期使用时间(可核销开始时间)
couponrecord.setExpireDate(dateCalculation(new Date(), Integer.parseInt(checkcoupon.getExpireMonth()) + Integer.parseInt(checkcoupon.getTakeEffectMonth())));//失效时间
couponrecord.setInvalidDate(dateCalculation(new Date(), Integer.parseInt(checkcoupon.getExpireMonth()) + Integer.parseInt(checkcoupon.getTakeEffectMonth())));//失效时间
couponrecordMapper.save(couponrecord);
}
if (number >= 6) {//赠送第二张
......@@ -139,9 +139,9 @@ public class CouponrecordServiceImpl extends GenericServiceImpl<Couponrecord> im
couponrecord.setCouponId(checkcoupon.getId());
couponrecord.setAccountsId(accountId);
couponrecord.setQrcode(QrcodeUtil.generateQrcode(no));//生成二维码
couponrecord.setExpireDate(dateCalculation(couponrecord_one.getTakeEffectDate(), Integer.parseInt(checkcoupon.getExpireMonth())));//延期使用时间(可核销开始时间)
couponrecord.setTakeEffectDate(dateCalculation(couponrecord_one.getTakeEffectDate(), Integer.parseInt(checkcoupon.getExpireMonth()) + Integer.parseInt(checkcoupon.getExpireMonth())));//延期使用时间(可核销开始时间)
couponrecord.setInvalidDate(dateCalculation(couponrecord_one.getTakeEffectDate(), Integer.parseInt(checkcoupon.getExpireMonth()) + Integer.parseInt(checkcoupon.getExpireMonth())));
couponrecord.setTakeEffectDate(dateCalculation(couponrecord_one.getTakeEffectDate(), Integer.parseInt(checkcoupon.getExpireTwoMonth())));//延期使用时间(可核销开始时间)
couponrecord.setExpireDate(dateCalculation(couponrecord_one.getTakeEffectDate(), Integer.parseInt(checkcoupon.getExpireTwoMonth()) + Integer.parseInt(checkcoupon.getTakeEffectMonth())));//失效时间
couponrecord.setInvalidDate(dateCalculation(couponrecord_one.getTakeEffectDate(), Integer.parseInt(checkcoupon.getExpireTwoMonth()) + Integer.parseInt(checkcoupon.getTakeEffectMonth())));//失效时间
couponrecordMapper.save(couponrecord);
}
} else if (couponrecordMax.getType().equals("1")) {//通过第一张开始时间获取购买数量
......@@ -165,9 +165,9 @@ public class CouponrecordServiceImpl extends GenericServiceImpl<Couponrecord> im
couponrecord.setCouponId(checkcoupon.getId());
couponrecord.setAccountsId(accountId);
couponrecord.setQrcode(QrcodeUtil.generateQrcode(no));//生成二维码
couponrecord.setExpireDate(dateCalculation(couponrecord_one.getTakeEffectDate(), Integer.parseInt(checkcoupon.getExpireMonth())));//延期使用时间(可核销开始时间)
couponrecord.setTakeEffectDate(dateCalculation(couponrecord_one.getTakeEffectDate(), Integer.parseInt(checkcoupon.getExpireMonth()) + Integer.parseInt(checkcoupon.getExpireMonth())));//延期使用时间(可核销开始时间)
couponrecord.setInvalidDate(dateCalculation(couponrecord_one.getTakeEffectDate(), Integer.parseInt(checkcoupon.getExpireMonth()) + Integer.parseInt(checkcoupon.getExpireMonth())));
couponrecord.setTakeEffectDate(dateCalculation(couponrecord_one.getTakeEffectDate(), Integer.parseInt(checkcoupon.getExpireTwoMonth())));//延期使用时间(可核销开始时间)
couponrecord.setExpireDate(dateCalculation(couponrecord_one.getTakeEffectDate(), Integer.parseInt(checkcoupon.getExpireTwoMonth()) + Integer.parseInt(checkcoupon.getTakeEffectMonth())));//失效时间
couponrecord.setInvalidDate(dateCalculation(couponrecord_one.getTakeEffectDate(), Integer.parseInt(checkcoupon.getExpireTwoMonth()) + Integer.parseInt(checkcoupon.getTakeEffectMonth())));//失效时间
couponrecordMapper.save(couponrecord);
}
}
......
......@@ -16,38 +16,39 @@ import java.util.UUID;
@Service("pdaCouponrecordService")
public class PdaCouponrecordServiceImpl implements PdaCouponrecordService {
@Autowired
@Qualifier("couponrecordMapper")
private CouponrecordMapper couponrecordMapper;
public JSONObject writeOff(JSONObject obj){
public JSONObject writeOff(JSONObject obj) {
JSONObject rtnJson = new JSONObject();
String logId = UUID.randomUUID().toString();
Map<String,Object> map = new HashMap<String,Object>();
map.put("id",logId);
map.put("content",obj.toString());
Map<String, Object> map = new HashMap<String, Object>();
map.put("id", logId);
map.put("content", obj.toString());
couponrecordMapper.insertPdaLog(map);
String facilityNo = obj.get("facilityNo")+"";
String number = obj.get("number")+"";
String token = obj.get("token")+"";
if(!token.equals("268710d79f63bcdebdf3f745f84d146f")){
String facilityNo = obj.get("facilityNo") + "";
String number = obj.get("number") + "";
String token = obj.get("token") + "";
if (!token.equals("268710d79f63bcdebdf3f745f84d146f")) {
rtnJson.put("code", 500);
rtnJson.put("msg", "接口调用失败!");
map = new HashMap<String,Object>();
map.put("id",logId);
map.put("resultJson",rtnJson.toString());
map.put("status",1);
map = new HashMap<String, Object>();
map.put("id", logId);
map.put("resultJson", rtnJson.toString());
map.put("status", 1);
couponrecordMapper.updatePdaLog(map);
return rtnJson;
}
try {
//是否已核销
Couponrecord info = couponrecordMapper.isWriteOff(number);
if(info!=null){
if(info.getStatus().equals("1")){
Map<String,Object> map1= couponrecordMapper.getHospitalIdByfaNo(facilityNo);
if(map1!=null&&map1.size()>0){
long hospitalId = Long.valueOf(map1.get("id")+"");
if (info != null) {
if (info.getStatus().equals("1")) {
Map<String, Object> map1 = couponrecordMapper.getHospitalIdByfaNo(facilityNo);
if (map1 != null && map1.size() > 0) {
long hospitalId = Long.valueOf(map1.get("id") + "");
info.setStatus("2");
info.setVerifDate(new Date());
info.setFacilityNo(facilityNo);
......@@ -55,59 +56,59 @@ public class PdaCouponrecordServiceImpl implements PdaCouponrecordService {
couponrecordMapper.update(info);
rtnJson.put("code", 200);
rtnJson.put("msg", "验证成功!");
map = new HashMap<String,Object>();
map.put("id",logId);
map.put("resultJson",rtnJson.toString());
map.put("status",2);
}else{
map = new HashMap<String, Object>();
map.put("id", logId);
map.put("resultJson", rtnJson.toString());
map.put("status", 2);
} else {
rtnJson.put("code", 500);
rtnJson.put("msg", "未找到设备号对应的医院!");
map = new HashMap<String,Object>();
map.put("id",logId);
map.put("resultJson",rtnJson.toString());
map.put("status",1);
map = new HashMap<String, Object>();
map.put("id", logId);
map.put("resultJson", rtnJson.toString());
map.put("status", 1);
couponrecordMapper.updatePdaLog(map);
}
}else if(info.getStatus().equals("0")){
} else if (info.getStatus().equals("0")) {
rtnJson.put("code", 500);
rtnJson.put("msg", "检测券未激活!");
map = new HashMap<String,Object>();
map.put("id",logId);
map.put("resultJson",rtnJson.toString());
map.put("status",1);
}else if(info.getStatus().equals("2")){
map = new HashMap<String, Object>();
map.put("id", logId);
map.put("resultJson", rtnJson.toString());
map.put("status", 1);
} else if (info.getStatus().equals("2")) {
rtnJson.put("code", 201);
rtnJson.put("msg", "检测券已使用!");
map = new HashMap<String,Object>();
map.put("id",logId);
map.put("resultJson",rtnJson.toString());
map.put("status",1);
}else {
map = new HashMap<String, Object>();
map.put("id", logId);
map.put("resultJson", rtnJson.toString());
map.put("status", 1);
} else {
rtnJson.put("code", 500);
rtnJson.put("msg", "检测券已过期!");
map = new HashMap<String,Object>();
map.put("id",logId);
map.put("resultJson",rtnJson.toString());
map.put("status",1);
map = new HashMap<String, Object>();
map.put("id", logId);
map.put("resultJson", rtnJson.toString());
map.put("status", 1);
}
couponrecordMapper.updatePdaLog(map);
} else {
rtnJson.put("code", 500);
rtnJson.put("msg", "未找到对应检测券");
map = new HashMap<String,Object>();
map.put("id",logId);
map.put("resultJson",rtnJson.toString());
map.put("status",1);
map = new HashMap<String, Object>();
map.put("id", logId);
map.put("resultJson", rtnJson.toString());
map.put("status", 1);
couponrecordMapper.updatePdaLog(map);
}
} catch (Exception e) {
e.printStackTrace();
rtnJson.put("code", 500);
rtnJson.put("msg", "系统错误:" + e.getMessage());
map = new HashMap<String,Object>();
map.put("id",logId);
map.put("resultJson",rtnJson.toString());
map.put("status",1);
map = new HashMap<String, Object>();
map.put("id", logId);
map.put("resultJson", rtnJson.toString());
map.put("status", 1);
couponrecordMapper.updatePdaLog(map);
}
return rtnJson;
......
......@@ -27,11 +27,11 @@ public class PdaCouponrecordController {
private PdaCouponrecordService pdaCouponrecordService;
/**
* @return
* @Author Fanjr
* @Description 检测券核销
* @Description 检测券核销
* @Date 2021年2月8日
* @Param
* @return
**/
@RequestMapping(value = "/writeOff", method = {RequestMethod.POST})
public JSONObject writeOff(@RequestBody String param) {
......
......@@ -104,8 +104,8 @@
<th>设备号</th>
<th>地址</th>
<th>联系方式</th>
<th>经度</th>
<th>纬度</th>
<!-- <th>经度</th>-->
<!-- <th>纬度</th>-->
<th>创建时间</th>
<th>操作</th>
</tr>
......@@ -225,12 +225,12 @@
{
"mData": "telephone"
},
{
"mData": "longitude"
},
{
"mData": "latitude"
},
// {
// "mData": "longitude"
// },
// {
// "mData": "latitude"
// },
{
"mData": "createTime"
},
......@@ -243,7 +243,7 @@
'targets': [0]
},
{
"aTargets": [8],
"aTargets": [6],
"mData": "createTime",
"mRender": function (a, b, c, d) {
return formatDates(a, "yyyy-MM-dd HH:mm:ss");
......@@ -251,7 +251,7 @@
}
},
{
"aTargets": [9],
"aTargets": [7],
"mData": "id",
"mRender": function (a, b, c, d) {
let html = '';
......@@ -263,6 +263,7 @@
'<ul class="dropdown-menu" role="menu" style="min-width: 100px;">';
html += '<li>#if($shiro.hasPermission("qy:hospital:view"))<a href="#springUrl("/a/hospital/form?pageType=View&id=' + a + '")" class="btn green">查看</a>#end</li>';
html += '<li>#if($shiro.hasPermission("qy:hospital:edit"))<a href="#springUrl("/a/hospital/form?pageType=Edit&id=' + a + '")" class="btn green">修改</a>#end</li>';
html += '<li>#if($shiro.hasPermission("qy:hospital:edit"))<a href="javascript:void(0)" onclick="removeData('+a+')" class="btn green">删除</a>#end</li>';
html += '</ul></div>';
return html;
}
......@@ -298,7 +299,10 @@
$.ajax({
type: "POST",
url: "#springUrl('/a/hospital/delete')",
data: {id: data},
data: {id: data,
_csrfheader: csrfheader.value,
_csrf: csrftoken.value
},
dataType: "json",
success: function (data) {
if (data.errorNo == 0) {
......
......@@ -2,6 +2,7 @@ package com.cftech.orderdetail.dao;
import com.cftech.orderdetail.model.OrderDetails;
import com.cftech.core.generic.GenericDao;
import com.cftech.orderdetail.model.OrderSplitBatchDto;
import java.util.Map;
......@@ -19,4 +20,11 @@ public interface OrderDetailsMapper extends GenericDao<OrderDetails> {
* @return
*/
Integer fetchMemberByYearGoodsNum(Map<String, Object> params);
/**
* 保存订单明细含批次号
* @param orderSplitBatchDto
* @return
*/
Long saveDrugBatchNo(OrderSplitBatchDto orderSplitBatchDto);
}
\ No newline at end of file
......@@ -77,7 +77,7 @@
<insert id="save" parameterType="com.cftech.orderdetail.model.OrderDetails" useGeneratedKeys="true"
keyProperty="id">
insert into t_order
insert into t_order_split_batch
(
<include refid="sqlColumns"/>
)
......@@ -143,7 +143,7 @@
</select>
<update id="update" parameterType="com.cftech.orderdetail.model.OrderDetails">
update t_order
update t_order_split_batch
<set>
<if test="id != null">
id = #{id, jdbcType=BIGINT},
......@@ -209,4 +209,51 @@
<update id="delete" parameterType="java.lang.Long">
update t_order set del_flag=1 where id=#{id,jdbcType=BIGINT}
</update>
<!-- 插入订单明细 批次号 -->
<insert id="saveDrugBatchNo" parameterType="com.cftech.orderdetail.model.OrderSplitBatchDto" useGeneratedKeys="true"
keyProperty="id">
insert into t_order_split_batch
(
id,
order_id,
order_code,
drugs_id,
drugs_num,
openid,
drugs_code,
drugs_sku,
drugs_batchno,
accounts_id,
del_flag,
STATUS,
create_time,
update_time,
description,
create_by,
update_by,
drugs_name
)
values
(
#{id, jdbcType=BIGINT},
#{orderId, jdbcType=BIGINT},
#{orderCode, jdbcType=VARCHAR},
#{drugsId, jdbcType=BIGINT},
#{drugsNum, jdbcType=BIGINT},
#{openid, jdbcType=VARCHAR},
#{drugsCode, jdbcType=CHAR},
#{drugsSku, jdbcType=VARCHAR},
#{drugsBatchNo, jdbcType=VARCHAR},
#{accountsId, jdbcType=BIGINT},
#{delFlag, jdbcType=TINYINT},
#{status, jdbcType=VARCHAR},
now(),
now(),
#{description, jdbcType=VARCHAR},
#{createBy, jdbcType=BIGINT},
#{updateBy, jdbcType=BIGINT},
#{drugsName, jdbcType=VARCHAR}
)
</insert>
</mapper>
\ No newline at end of file
package com.cftech.orderdetail.model;
import com.alibaba.fastjson.annotation.JSONField;
import com.cftech.core.poi.ExportConfig;
import lombok.Data;
import java.util.Date;
@Data
public class OrderSplitBatchDto {
/* 主键id */
private Long id;
/* 订单id */
private Long orderId;
/* 订单编码 */
private String orderCode;
/* 商品id */
private Long drugsId;
/* 商品名称 */
private String drugsName;
/* 商品数量 */
private Long drugsNum;
/* 用户所属公众号id */
private String openid;
/* 商品价格 */
private Double price;
/* 商品总价 */
private Double amount;
/* 商品编码 */
private String drugsCode;
/* 商品sku(规格) */
private String drugsSku;
/* 对应erp物料号 */
private String drugsBatchNo;
/* 所属的账号 */
private Long accountsId;
/* 删除标识 */
private boolean delFlag;
/* 状态 */
private String status;
/* 创建时间 */
private Date createTime;
/* 更新时间 */
private Date updateTime;
/* 备注 */
private String description;
/* 创建人 */
private Long createBy;
/* 更新人 */
private Long updateBy;
public OrderSplitBatchDto() {
this.delFlag = false;
this.status = "0";
}
}
......@@ -4,6 +4,7 @@ import com.cftech.core.sql.Conds;
import com.cftech.core.sql.Sort;
import com.cftech.orderdetail.model.OrderDetails;
import com.cftech.core.generic.GenericService;
import com.cftech.orderdetail.model.OrderSplitBatchDto;
import java.util.List;
......@@ -31,4 +32,11 @@ public interface OrderDetailsService extends GenericService<OrderDetails> {
* @return
*/
Integer fetchMemberByYearGoodsNum(Conds conds);
/**
* 保存订单明细含批次号
* @param orderSplitBatchDto
* @return
*/
Long saveDrugBatchNo(OrderSplitBatchDto orderSplitBatchDto);
}
......@@ -4,6 +4,7 @@ import com.cftech.core.sql.Sort;
import com.cftech.core.util.StringUtils;
import com.cftech.orderdetail.model.OrderDetails;
import com.cftech.orderdetail.dao.OrderDetailsMapper;
import com.cftech.orderdetail.model.OrderSplitBatchDto;
import com.cftech.orderdetail.service.OrderDetailsService;
import com.cftech.core.generic.GenericDao;
import com.cftech.core.generic.GenericServiceImpl;
......@@ -54,4 +55,9 @@ public class OrderDetailsServiceImpl extends GenericServiceImpl<OrderDetails> im
params.put("conds", conds);
return orderDetailsMapper.fetchMemberByYearGoodsNum(params);
}
@Override
public Long saveDrugBatchNo(OrderSplitBatchDto orderSplitBatchDto) {
return orderDetailsMapper.saveDrugBatchNo(orderSplitBatchDto);
}
}
\ No newline at end of file
......@@ -593,14 +593,19 @@
var url = "#springUrl('/a/order/formData')";
$("#save").attr("disabled", true);
console.log(JSON.stringify(datas));
$.ajax({
url: url,
type: "POST",
dateType: 'json',
headers: {"Accept": "application/json;charset=UTF-8"},
//headers: {"Accept": "application/json;charset=UTF-8"},
data: {
_csrf: csrf, _csrf_header: csrf_header,
datas: JSON.stringify(datas)
_csrf: csrf,
_csrf_header: csrf_header,
datas: JSON.stringify(datas),
orderId: $('input[name="id"]').val(),
openid: $('input[name="openid"]').val(),
orderAmount: $('input[name="orderAmount"]').val()
},
success: function (rsp) {
$("#save").attr("disabled", false);
......
......@@ -44,6 +44,10 @@
<!-- bootstrap wysihtml5 - text editor -->
<link rel="stylesheet" href="plugins/bootstrap-wysihtml5/bootstrap3-wysihtml5.min.css">
<script src="plugins/datatables/jquery.dataTables.min.js"></script>
<script src="plugins/datatables/extensions/i18n/lanauage_ch.js"></script>
<script src="plugins/datatables/dataTables.bootstrap.min.js"></script>
<!-- HTML5 Shim and Respond.js IE8 support of HTML5 elements and media queries -->
<!-- WARNING: Respond.js doesn't work if you view the page via file:// -->
<!--[if lt IE 9]>
......@@ -335,21 +339,6 @@
{
"mData": "productName"
},
// {
// "mData": "orderAmount"
// }
// ,
// {
// "mData": "totalAmount"
// }
// ,
// {
// "mData": "nickName"
// }
// ,
// {
// "mData": "openid"
// },
{
"mData": "courierNumber"
}
......@@ -378,7 +367,6 @@
{
"mData": "id"
}
],
"aoColumnDefs": [
{ // set default column settings
......
......@@ -496,7 +496,7 @@
update t_order set del_flag=1 where id=#{id,jdbcType=BIGINT}
</update>
<select id="fetchProduct" resultType="com.cftech.order.model.ProductDto" parameterType="java.util.Map">
<select id="fetchProduct" parameterType="java.util.Map" resultType="com.cftech.order.model.ProductDto">
SELECT * FROM t_aidea_product WHERE id = #{productId} AND accounts_id=#{accountsId} AND del_flag = 0
</select>
......@@ -526,21 +526,21 @@
<insert id="saveDetill" parameterType="com.cftech.order.model.OrderDetailDto">
insert into t_order_details
(
<include refid="Column"/>
<include refid="Column"/>
)
values
(
#{orderId},
#{orderCode},
#{drugsId},
#{drugsNum},
#{openid},
#{price},
#{amount},
#{drugsCode},
#{drugsSku},
#{accountsId},
#{drugsName}
#{orderId},
#{orderCode},
#{drugsId},
#{drugsNum},
#{openid},
#{price},
#{amount},
#{drugsCode},
#{drugsSku},
#{accountsId},
#{drugsName}
)
</insert>
......
package com.cftech.order.model;
import lombok.Data;
@Data
public class DrugVo {
private String drugs;
}
......@@ -41,7 +41,7 @@ public interface OrderService extends GenericService<Order> {
Integer updateStatus(Long id, String status, String orderCancel);
JSONObject saveOrderDetail(String datas, Long accountsId) throws Exception;
JSONObject saveOrderDetail(String datas, Long accountsId, String orderId, String openid, Double orderAmount) throws Exception;
JSONObject deleteAll(Long id);
......
......@@ -48,6 +48,7 @@ import org.springframework.transaction.interceptor.TransactionAspectSupport;
import javax.servlet.http.HttpServletRequest;
import java.io.Serializable;
import java.math.BigDecimal;
import java.text.SimpleDateFormat;
import java.util.*;
......@@ -157,18 +158,23 @@ public class OrderServiceImpl extends GenericServiceImpl<Order> implements Order
@Transactional(rollbackFor = RuntimeException.class)
@Override
public JSONObject saveOrderDetail(String datas, Long accountsId) throws Exception {
public JSONObject saveOrderDetail(String datas, Long accountsId, String orderId, String openid, Double orderAmount) throws Exception {
JSONObject rtnJson = new JSONObject();
OrderDetailDto orderDetailDto = null;
Map<String, Object> params = new HashMap<>();
datas = datas.replaceAll("&quot;", "\"");
JSONArray jsonArray = JSONArray.parseArray(datas);
Long id = null;
Double orderAmount = null;
Order order = null;
boolean flag = false;
Conds orderConds = new Conds();
orderConds.equal("o.del_flag", Constants.DEL_FLAG_0);
orderConds.equal("o.id", orderId);
Order order = this.fetchSearchByConds(orderConds);
//当前订单所购艾邦德数量,金额
String drugsId = SystemConfig.p.getProperty("THREE_GRUGS_ID");
Long drugNum = 0L;
Double price = null;
//生成订单详情
Map<String, Object> params = new HashMap<>();
for (int i = 0; i < jsonArray.size(); i++) {
JSONObject obj = jsonArray.getJSONObject(i);
params.put("accountsId", accountsId);
......@@ -184,26 +190,8 @@ public class OrderServiceImpl extends GenericServiceImpl<Order> implements Order
//获取产品信息
ProductDto productDtos = orderMapper.fetchProduct(params);
if (order == null) {
id = obj.getLong("id");
orderAmount = obj.getDouble("orderAmount");
Conds orderConds = new Conds();
orderConds.equal("o.del_flag", Constants.DEL_FLAG_0);
orderConds.equal("o.id", id);
order = this.fetchSearchByConds(orderConds);
if (order != null) {
calculateAmount(order, orderAmount);
//order.setOrderAmount(orderAmount);
} else {
rtnJson.put("errorNo", "1");
return rtnJson;
}
}
orderDetailDto = new OrderDetailDto();
orderDetailDto.setOrderId(id);
OrderDetailDto orderDetailDto = new OrderDetailDto();
orderDetailDto.setOrderId(obj.getLong("id"));
orderDetailDto.setOrderCode(order.getNumber());
orderDetailDto.setOpenid(order.getOpenid());
orderDetailDto.setPrice(obj.getDouble("price"));
......@@ -214,30 +202,37 @@ public class OrderServiceImpl extends GenericServiceImpl<Order> implements Order
orderDetailDto.setDrugsCode(productDtos.getProductNumber());
orderDetailDto.setDrugsSku(productDtos.getFormat());
orderDetailDto.setAccountsId(accountsId);
Integer result = this.saveDetill(orderDetailDto);
if (result > 0) {
flag = true;
this.saveDetill(orderDetailDto);
if (Long.parseLong(drugsId) == obj.getLong("productId")) {
drugNum = obj.getLong("drugsNum");
price = obj.getDouble("price");
}
}
if (order != null) {
calculateAmount(order, orderAmount, drugNum, price);
} else {
rtnJson.put("errorNo", "1");
return rtnJson;
}
//获取商户号订单内容
if (flag) {
JSONObject mchObj = WechatPayUtils.genenatePay(order);
if (mchObj != null) {
order.setStatus("1");
order.setOrderTime(new Date());
order.setOrderAmount(orderAmount);
order.setRemarks(mchObj.toString());
boolean bool = this.update(order);
if (bool) {
rtnJson.put("errorNo", "0");
rtnJson.put("errorMsg", "确认成功!");
return rtnJson;
}
} else {
//商户号调用失败抛出异常回滚
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
JSONObject mchObj = WechatPayUtils.genenatePay(order);
if (mchObj != null) {
order.setStatus("1");
order.setOrderTime(new Date());
order.setOrderAmount(orderAmount);
order.setRemarks(mchObj.toString());
boolean bool = this.update(order);
if (bool) {
rtnJson.put("errorNo", "0");
rtnJson.put("errorMsg", "确认成功!");
return rtnJson;
}
} else {
//商户号调用失败抛出异常回滚
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
}
rtnJson.put("errorNo", "1");
......@@ -250,8 +245,10 @@ public class OrderServiceImpl extends GenericServiceImpl<Order> implements Order
* @param orderAmount //非三期患者所以购药金额
* 三期患者免费购药,根据身份证号做出限制,每年同一身份证号购买12盒以内的药品,价格自动设为0,如超出12 盒恢复原价。
*/
private void calculateAmount(Order order, Double orderAmount) {
private void calculateAmount(Order order, Double orderAmount, Long num, Double price) {
if (isThreeUsers(order.getOpenid()) > 0) {
BigDecimal unitP = new BigDecimal(price);//折扣单价
BigDecimal nums = null;//折扣数量
//三期用户
Conds conds = new Conds();
conds.equal("d.del_flag", Constants.DEL_FLAG_0);
......@@ -259,12 +256,22 @@ public class OrderServiceImpl extends GenericServiceImpl<Order> implements Order
conds.equal("d.openid", order.getOpenid());
conds.equal("o.openid", order.getOpenid());
conds.equal("YEAR(d.create_time)", new Date().getYear());
Integer number = orderDetailsService.fetchMemberByYearGoodsNum(conds);
conds.equal("d.drugs_id", SystemConfig.p.getProperty("THREE_GRUGS_ID"));
conds.notEqual("d.order_id", order.getId());
Integer number = orderDetailsService.fetchMemberByYearGoodsNum(conds);//已购药品数据
if (number >= 12) {
order.setOrderAmount(orderAmount);
} else {
// todo 计算所需金额
order.setOrderAmount(orderAmount);
int realNum = (12 - number);//剩余每年免费盒数
if (num.intValue() < realNum) {
nums = new BigDecimal(num);
} else {
nums = new BigDecimal(realNum);
}
BigDecimal saleAmount = unitP.multiply(nums);//三期患者折扣价格
BigDecimal sumAmount = new BigDecimal(orderAmount);//订单总价
BigDecimal realAmount = sumAmount.subtract(saleAmount);//实际需支付价格
order.setOrderAmount(realAmount.doubleValue());
}
} else {
//非三期用户
......
package com.cftech.order.web;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.alibaba.fastjson.serializer.SerializerFeature;
import com.cftech.base.codingrule.utils.CodingruleUtils;
......@@ -12,10 +13,7 @@ import com.cftech.accounts.model.MpAccountsEntity;
import com.cftech.accounts.service.MpAccountsService;
import com.cftech.base.org.api.QyMsgUtil;
import com.cftech.base.org.service.QyuserService;
import com.cftech.order.model.Order;
import com.cftech.order.model.OrderFromVO;
import com.cftech.order.model.OrderVO;
import com.cftech.order.model.ProductOrder;
import com.cftech.order.model.*;
import com.cftech.order.service.OrderService;
import com.cftech.core.poi.ExcelKit;
import com.cftech.core.scope.OrderType;
......@@ -32,6 +30,7 @@ import com.cftech.sys.service.RoleService;
import com.cftech.sys.service.UserService;
import com.google.zxing.WriterException;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringEscapeUtils;
import org.apache.commons.lang3.StringUtils;
import org.apache.shiro.authz.annotation.RequiresPermissions;
import org.springframework.beans.factory.annotation.Autowired;
......@@ -49,9 +48,7 @@ import java.io.File;
import java.io.IOException;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.LinkedList;
import java.util.List;
import java.util.*;
/**
......@@ -201,14 +198,16 @@ public class OrderController {
//提交数据(新增、修改)
@RequiresPermissions(value = ORDER_EDIT)
@PostMapping(value = "/formData", produces = {"application/json;charset=utf-8"})
@PostMapping(value = "/formData")
@ResponseBody
public JSONObject formData(HttpServletRequest request, String datas) {
public JSONObject formData(HttpServletRequest request, String datas, String orderId, String openid, Double orderAmount) {
//解析json字符串
datas = StringEscapeUtils.unescapeHtml4(datas);
Long accountsId = UserUtils.getmpaccounts(request);
JSONObject jsonObject = null;
try {
//是否三期用户,用户购买数量。 计算超出部分金额
jsonObject = orderService.saveOrderDetail(datas, accountsId);
jsonObject = orderService.saveOrderDetail(datas, accountsId, orderId, openid, orderAmount);
} catch (UnexpectedRollbackException e) {
if (jsonObject == null)
jsonObject = new JSONObject();
......@@ -635,4 +634,43 @@ public class OrderController {
rtnJson.put("errorNo", "1");
return rtnJson;
}
/**
* 拆分出库订单,增加批次号
* @param iDisplayStart
* @param iDisplayLength
* @param drugVo
* @param request
* @return
* @throws ParseException
*/
@RequestMapping(value = "/orderSplit")
@ResponseBody
public JSONObject orderSplit(int iDisplayStart, int iDisplayLength, DrugVo drugVo, HttpServletRequest request) {
JSONObject rtnJson = new JSONObject();
if (StringUtils.isBlank(drugVo.getDrugs())) {
rtnJson.put("errorNo", 1);
return rtnJson;
}
String drugs = StringEscapeUtils.unescapeHtml4(drugVo.getDrugs());
List<Map<String, Object>> list = new ArrayList<>();
JSONArray drugArr = JSONArray.parseArray(drugs);
for (int i=0; i<drugArr.size(); i++) {
JSONObject drugObj = drugArr.getJSONObject(i);
for (int y=0; y<drugObj.getInteger("orderNum"); y++) {
Map<String, Object> map = new HashMap<>();
map.put("drugCode", drugObj.getString("productCode"));
map.put("drugName", drugObj.getString("productName"));
map.put("num", 1);
map.put("batchNO", "");
list.add(map);
}
}
rtnJson.put("iTotalRecords", 100);
rtnJson.put("iTotalDisplayRecords", 100);
rtnJson.put("aaData", list);
return rtnJson;
}
}
......@@ -38,4 +38,17 @@ public interface ReportMapper extends GenericDao<Report> {
*/
ReportDoctorInfo selectReportDoctorInfo(Map<String,Object> params);
/**
* 订单出库报表
* @param params
* @return
*/
List<Report> fetchSearchByPageOutReport(Map<String, Object> params);
/**
* 订单出库报表统计
* @param params
* @return
*/
Integer countOutReport(Map<String, Object> params);
}
\ No newline at end of file
......@@ -351,4 +351,30 @@
<include refid="sqlWhere"/>
</select>
<select id="countOutReport" parameterType="java.util.Map" resultType="java.lang.Integer">
SELECT COUNT(1) FROM t_aidea_report
<include refid="sqlWhere"/>
</select>
<select id="fetchSearchByPageOutReport" parameterType="java.util.Map" resultType="com.cftech.report.model.OutStoreReport">
SELECT
cs.consult_id consultCode,
o.number orderCode,
p.common_name drugName,
p.format grugSku,
sb.drugs_num drugNum,
sb.drugs_batchno drugBatchNo,
w.create_time outStoreDate
FROM t_order_split_batch sb
LEFT JOIN t_order o ON sb.order_id = o.id AND o.del_flag = '0'
LEFT JOIN t_aidea_consult_sheet cs ON cs.order_id = o.id AND cs.del_flag = '0'
LEFT JOIN t_aidea_product p ON p.id = sb.drugs_id AND p.del_flag = '0'
LEFT JOIN t_aidea_waybill w ON o.id = w.order_id AND w.del_flag = '0'
<include refid="sqlWhere"/>
<if test="sort!=null">ORDER BY ${sort.param} ${sort.type}</if>
<if test="limit>0">limit #{offset},#{limit}</if>
</select>
</mapper>
\ No newline at end of file
package com.cftech.report.model;
import lombok.Data;
/**
* 订单出库报表实体类
*/
@Data
public class OutStoreReport {
/* 咨询单编码 */
private String consultCode;
/* 需求清单编码 */
private String orderCode;
/* 药品名称 */
private String drugName;
/* 药品Sku */
private String grugSku;
/* 药品数量 */
private String drugNum;
/* 药品批次号 */
private String drugBatchNo;
/* 出库时间 */
private String outStoreDate;
/* 有效期 */
private String takeEffectDate;
}
......@@ -41,4 +41,21 @@ public interface ReportService extends GenericService<Report> {
* @return
*/
ReportDoctorInfo selectReportDoctorInfo(Conds cond);
/**
* 订单出库报表
* @param conds
* @param sort
* @param iDisplayStart
* @param iDisplayLength
* @return
*/
List<Report> fetchSearchByPageOutReport(Conds conds, Sort sort, int iDisplayStart, int iDisplayLength);
/**
* 订单出库报表统计
* @param conds
* @return
*/
Integer countOutReport(Conds conds);
}
......@@ -58,4 +58,21 @@ public class ReportServiceImpl extends GenericServiceImpl<Report> implements Rep
params.put("conds", cond);
return reportMapper.selectReportDoctorInfo(params);
}
@Override
public List<Report> fetchSearchByPageOutReport(Conds conds, Sort sort, int page, int pageSize) {
Map<String, Object> params = new HashMap<String, Object>();
params.put("conds", conds);
params.put("offset", page > 0 ? page : 0);
params.put("limit", pageSize > 0 ? pageSize : 0);
params.put("sort", sort);
return reportMapper.fetchSearchByPageOutReport(params);
}
@Override
public Integer countOutReport(Conds conds) {
Map<String, Object> params = new HashMap<String, Object>();
params.put("conds", conds);
return reportMapper.countOutReport(params);
}
}
\ No newline at end of file
package com.cftech.report.web;
import com.alibaba.fastjson.JSONObject;
import com.cftech.core.poi.ExcelKit;
import com.cftech.core.scope.OrderType;
import com.cftech.core.sql.Conds;
import com.cftech.core.sql.Sort;
import com.cftech.core.util.Constants;
import com.cftech.report.model.Report;
import com.cftech.report.service.ReportService;
import com.cftech.sys.security.UserUtils;
import lombok.extern.slf4j.Slf4j;
import org.apache.shiro.authz.annotation.RequiresPermissions;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.util.StringUtils;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.multipart.MultipartFile;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.File;
import java.io.IOException;
import java.util.List;
/**
* 报表信息Controller
* <p>
* 权限字符串说明:
* 查看:public static final String REPORT_VIEW = "qy:report:view"
* 查看:public static final String REPORT_EDIT = "qy:report:edit"
*
* @author Buyj
* @date: 2020-12-02 11:26
*/
@Slf4j
@Controller
@RequestMapping("/a/outReport")
public class OutStoreReportController {
public static final String REPORT_VIEW = "qy:outReport:view";
public static final String REPORT_EDIT = "qy:outReport:edit";
@Autowired
private ReportService reportService;
//列表页面
@RequiresPermissions(value = REPORT_VIEW)
@RequestMapping("/list")
public String list(HttpServletRequest request, Model model) {
Long accountId = UserUtils.getmpaccounts(request);
model.addAttribute("accountId", accountId);
return "report/outReportlist";
}
//编辑页面(新增、修改)
@RequiresPermissions(value = REPORT_VIEW)
@RequestMapping("/form")
public String form(HttpServletRequest request, String id, Model model) {
if (!StringUtils.isEmpty(id)) {
Report report = reportService.fetchById(id);
model.addAttribute("data", report);
}
return "report/outReportform";
}
//提交数据(新增、修改)
@RequiresPermissions(value = REPORT_EDIT)
@RequestMapping("/formData")
@ResponseBody
public JSONObject formData(Report report, Model model, HttpServletRequest request) {
Long accountsId = UserUtils.getmpaccounts(request);
JSONObject rtnJson = new JSONObject();
try {
if (report != null && report.getId() != null) {
report.setUpdateBy(UserUtils.getUser().getId());
reportService.update(report);
rtnJson.put("errorNo", 0);
} else {
report.setAccountsId(accountsId);
report.setDelFlag(false);
report.setAccountsId(UserUtils.getmpaccounts(request));
report.setCreateBy(UserUtils.getUser().getId());
report.setUpdateBy(UserUtils.getUser().getId());
reportService.save(report);
rtnJson.put("errorNo", 2);
}
} catch (Exception e) {
rtnJson.put("errorNo", 1);
}
return rtnJson;
}
//获取列表数据
@RequiresPermissions(value = REPORT_VIEW)
@RequestMapping(value = "/listData")
@ResponseBody
public JSONObject listData(int iDisplayStart, int iDisplayLength, Report report, HttpServletRequest request,String startPayTime,String endPayTime) {
Long accountsId = UserUtils.getmpaccounts(request);
Conds conds = new Conds();
conds.equal("del_flag", Constants.DEL_FLAG_0);
//conds.equal("accounts_id", accountsId);
Sort sort = new Sort("create_time", OrderType.DESC);
List<Report> list = reportService.fetchSearchByPageOutReport(conds, sort, iDisplayStart, iDisplayLength);
Integer counts = reportService.countOutReport(conds);
JSONObject rtnJson = new JSONObject();
rtnJson.put("iTotalRecords", counts);
rtnJson.put("iTotalDisplayRecords", counts);
rtnJson.put("aaData", list);
return rtnJson;
}
//删除数据
@RequiresPermissions(value = REPORT_EDIT)
@RequestMapping("/delete")
@ResponseBody
public JSONObject delete(String id) {
JSONObject rtnJosn = new JSONObject();
try {
reportService.delete(id);
rtnJosn.put("errorNo", 0);
} catch (Exception e) {
rtnJosn.put("errorNo", 1);
}
return rtnJosn;
}
@RequestMapping("/exportExcel")
@RequiresPermissions(value = REPORT_VIEW)
public void exportExcel(Report report, HttpServletRequest request,String startPayTime,String endPayTime, HttpServletResponse response) {
Long accountId = UserUtils.getmpaccounts(request);
Sort sort = new Sort("create_time", OrderType.ASC);
Conds conds = new Conds();
conds.equal("del_flag", 0);
if(!StringUtils.isEmpty(report.getRegion())){
conds.like("region",report.getRegion());
}
if(!StringUtils.isEmpty(report.getProvince())){
conds.like("province",report.getProvince());
}
if(!StringUtils.isEmpty(report.getCity())){
conds.like("city",report.getCity());
}
if(!StringUtils.isEmpty(report.getHospital())){
conds.like("hospital",report.getHospital());
}
if(!StringUtils.isEmpty(report.getDoctorName())){
conds.like("doctor_name",report.getDoctorName());
}
if(!StringUtils.isEmpty(report.getPhone())){
conds.like("phone",report.getPhone());
}
if(!StringUtils.isEmpty(report.getDrugsNum())){
conds.equal("drugs_num",report.getDrugsNum());
}
if(!StringUtils.isEmpty(startPayTime)){
conds.greatEqual("DATE_FORMAT(fk_time,'%Y-%m-%d')",startPayTime);
}
if(!StringUtils.isEmpty(endPayTime)){
conds.lessEqual("DATE_FORMAT(fk_time,'%Y-%m-%d')",endPayTime);
}
List<Report> list = reportService.fetchSearchByPage(conds, sort, 0, 0);
ExcelKit.$Export(Report.class, response).toExcel(list, "报表信息信息");
}
@RequestMapping("/templateExcel")
@RequiresPermissions(value = REPORT_VIEW)
public void templateExcel(HttpServletRequest request, HttpServletResponse response) {
ExcelKit.$Export(Report.class, response).toExcel(null, "报表信息信息");
}
@RequestMapping("/importExcel")
@RequiresPermissions(value = REPORT_EDIT)
public String importExcel(HttpServletRequest request, MultipartFile file, Model model) {
Long accountId = UserUtils.getmpaccounts(request);
if (file == null) {
return list(request, model);
}
// 构造临时路径来存储上传的文件
String uploadPath = System.getProperty("java.io.tmpdir");
File uploadDir = new File(uploadPath);
if (!uploadDir.exists()) {
uploadDir.mkdir();
}
String fileName = file.getOriginalFilename();
String filePath = uploadPath + File.separator + fileName;
File storeFile = new File(filePath);
try {
file.transferTo(storeFile);
ExcelKit.$Import().setEmptyCellValue("").readExcel(storeFile, rowData -> {
if (!StringUtils.isEmpty(rowData.get(0))) {
Report report = new Report();
report.setAccountsId(accountId);
reportService.save(report);
}
});
} catch (IOException e) {
log.error(e.getMessage());
}
return list(request, model);
}
}
......@@ -9,7 +9,6 @@ import com.cftech.core.sql.Conds;
import com.cftech.core.sql.Sort;
import com.cftech.core.util.Constants;
import com.cftech.report.service.ReportService;
import com.cftech.sys.security.PermissionSign;
import com.cftech.sys.security.UserUtils;
import lombok.extern.slf4j.Slf4j;
import org.apache.shiro.authz.annotation.RequiresPermissions;
......@@ -228,7 +227,7 @@ public class ReportController {
if (file == null) {
return list(request, model);
}
// 构造临时路径来存储上传的文件
// 构造临时路径来存储上传的文件
String uploadPath = System.getProperty("java.io.tmpdir");
File uploadDir = new File(uploadPath);
if (!uploadDir.exists()) {
......
......@@ -11,6 +11,7 @@ import com.cftech.core.util.SystemConfig;
import com.cftech.order.model.Order;
import com.cftech.order.service.OrderService;
import com.cftech.orderdetail.model.OrderDetails;
import com.cftech.orderdetail.model.OrderSplitBatchDto;
import com.cftech.orderdetail.service.OrderDetailsService;
import com.cftech.sys.model.User;
import com.cftech.sys.security.UserUtils;
......@@ -22,6 +23,7 @@ import com.cftech.core.generic.GenericServiceImpl;
import com.cftech.core.sql.Conds;
import com.cftech.waybill.utils.*;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringEscapeUtils;
import org.apache.http.message.BasicNameValuePair;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
......@@ -76,6 +78,7 @@ public class WaybillServiceImpl extends GenericServiceImpl<Waybill> implements W
JSONObject retObj = new JSONObject();
Long accountsId = UserUtils.getmpaccounts(request);
User user = UserUtils.getUser();
datas = StringEscapeUtils.unescapeHtml4(datas);
try {
if (orderId == null) {
retObj.put("errorNo", 1);
......@@ -129,6 +132,8 @@ public class WaybillServiceImpl extends GenericServiceImpl<Waybill> implements W
waybill.setAddress(address.getAddress());
waybill.setAddressId(String.valueOf(order.getAddressId()));
//接口调用数据
JSONObject msgDataObj = ExpressOrderInfoUtils.generateWaybillOrder(order, odets, waybill);
Long timestamp = System.currentTimeMillis();//时间戳
......@@ -181,23 +186,38 @@ public class WaybillServiceImpl extends GenericServiceImpl<Waybill> implements W
//更新出库批次号
if (StringUtils.isNoneBlank(datas) && JSONObject.parseArray(datas).size() > 0) {
JSONArray arr = JSONObject.parseArray(datas);
Conds orderDesConds = new Conds();
orderDesConds.equal("d.del_flag", Constants.DEL_FLAG_0);
orderDesConds.equal("d.order_id", orderId);
List<OrderDetails> orderDetailsList = orderDetailsService.fetchSearchByPage(orderDesConds, null, 0, 0);
for (OrderDetails orderDetails : orderDetailsList) {
for (int i=0; i< arr.size(); i++) {
JSONObject obj = arr.getJSONObject(i);
if (StringUtils.equals(orderDetails.getDrugsCode(), obj.getString("productCode"))) {
orderDetails.setDrugsName(obj.getString("productName"));
orderDetails.setDrugsMateriel(obj.getString("batchNo"));
orderDetailsService.update(orderDetails);
continue;
}
}
JSONArray arr = JSONObject.parseArray(datas);
for (int i=0; i<arr.size(); i++) {
JSONObject drugs = arr.getJSONObject(i);
OrderSplitBatchDto orderSplitBatchDto = new OrderSplitBatchDto();
orderSplitBatchDto.setOrderId(order.getId());
orderSplitBatchDto.setOrderCode(order.getNumber());
orderSplitBatchDto.setDrugsBatchNo(drugs.getString("batchNo"));
orderSplitBatchDto.setDrugsName(drugs.getString("drugName"));
orderSplitBatchDto.setDrugsCode(drugs.getString("drugCode"));
orderSplitBatchDto.setDrugsNum(drugs.getLong("num"));
orderSplitBatchDto.setOpenid(order.getOpenid());
orderDetailsService.saveDrugBatchNo(orderSplitBatchDto);
}
//
// Conds orderDesConds = new Conds();
// orderDesConds.equal("d.del_flag", Constants.DEL_FLAG_0);
// orderDesConds.equal("d.order_id", orderId);
// List<OrderDetails> orderDetailsList = orderDetailsService.fetchSearchByPage(orderDesConds, null, 0, 0);
// for (OrderDetails orderDetails : orderDetailsList) {
// for (int i=0; i< arr.size(); i++) {
// JSONObject obj = arr.getJSONObject(i);
// if (StringUtils.equals(orderDetails.getDrugsCode(), obj.getString("productCode"))) {
// orderDetails.setDrugsName(obj.getString("productName"));
// orderDetails.setDrugsMateriel(obj.getString("batchNo"));
// orderDetailsService.update(orderDetails);
// continue;
// }
// }
// }
}
waybillMapper.save(waybill);
......
......@@ -158,11 +158,18 @@ public class ExpressOrderInfoUtils {
//waybill.put("isReturnRoutelabel", "0");//是否返回路由标签: 默认0, 1:返回路由标签, 0:不返回
//waybill.put("podModelAddress", "url");//签单返回范本地址
//增值服务签收口令
//增值服务
JSONArray serviceArray = new JSONArray();
//签收口令
JSONObject serviceObj = new JSONObject();
serviceObj.put("name", "IN59");
serviceArray.add(serviceObj);
//保价服务
JSONObject servicePrice = new JSONObject();
servicePrice.put("name", "INSURE");
servicePrice.put("value", "500");
serviceArray.add(servicePrice);
waybill.put("serviceList", serviceArray);
//特殊需求药品,需冷冻、冷藏
......
......@@ -49,6 +49,10 @@ userfiles.imagedir=/mydata/wechatImage
#\u75C5\u8F7D\u6838\u9500\u4E8C\u7EF4\u7801
userfiles.qrcodedir=/mydata/fileQrcode
#\u4E09\u671F\u60A3\u8005\u6298\u6263\u836F\u54C1id
THREE_DRUGS_ID=24
#\u56FE\u7247\u8BBF\u95EE\u5730\u5740
IMAGEURL=/aidea/mobile/qybase/showPic?picFileName={PICFILENAME}
#\u4E8C\u7EF4\u7801\u8BBF\u95EE\u8DEF\u5F84
......@@ -61,7 +65,7 @@ LOG_URL=http://www.michang-tech.com.cn:6989/log/addlog
#\u6821\u9A8C\u5151\u6362\u5BC6\u7801KEY
MEMBER_PASSWORD_KEY=DONGCHANGINT9527;
list.refreshtoken=true
jwt.domain=pd.shxrtech.com
jwt.domain=localhost
#\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD
jwt.duration=86400000
#\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u03AAtrue
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment