删除部分
Showing
549 changed files
with
0 additions
and
4791 deletions
.svn/entries
deleted
100644 → 0
1 | 12 |
.svn/format
deleted
100644 → 0
1 | 12 |
1 | package com.phxl.modules.goods.entity.supplierstock; | ||
2 | |||
3 | import java.math.BigDecimal; | ||
4 | import java.util.Date; | ||
5 | |||
6 | /** | ||
7 | * 供应商库存信息 | ||
8 | */ | ||
9 | |||
10 | public class SupplierStock{ | ||
11 | |||
12 | private String suppliercode; //供应商代码 | ||
13 | private String suppliername; //供应商名称 | ||
14 | private String goodsCode; //商品编码 | ||
15 | private String goodsName; //商品名称 | ||
16 | private String goodsSpec; //商品规格 | ||
17 | private String manufacturer; //生产厂商 | ||
18 | private String lot; //批号 | ||
19 | private Date productionDate; //生产日期 | ||
20 | private Date expireDate; //有效期至 | ||
21 | private BigDecimal stockQty; //库存数量 | ||
22 | private Date createTime; //创建时间 | ||
23 | private Date updateTime; //更新时间 | ||
24 | |||
25 | private String id; | ||
26 | |||
27 | public String getId() { | ||
28 | return id; | ||
29 | } | ||
30 | public void setId(String id) { | ||
31 | this.id = id; | ||
32 | } | ||
33 | |||
34 | public String getSuppliercode() { | ||
35 | return suppliercode; | ||
36 | } | ||
37 | public void setSuppliercode(String suppliercode) { | ||
38 | this.suppliercode = suppliercode; | ||
39 | } | ||
40 | public String getSuppliername() { | ||
41 | return suppliername; | ||
42 | } | ||
43 | public void setSuppliername(String suppliername) { | ||
44 | this.suppliername = suppliername; | ||
45 | } | ||
46 | public String getGoodsCode() { | ||
47 | return goodsCode; | ||
48 | } | ||
49 | public void setGoodsCode(String goodsCode) { | ||
50 | this.goodsCode = goodsCode; | ||
51 | } | ||
52 | public String getGoodsName() { | ||
53 | return goodsName; | ||
54 | } | ||
55 | public void setGoodsName(String goodsName) { | ||
56 | this.goodsName = goodsName; | ||
57 | } | ||
58 | public String getGoodsSpec() { | ||
59 | return goodsSpec; | ||
60 | } | ||
61 | public void setGoodsSpec(String goodsSpec) { | ||
62 | this.goodsSpec = goodsSpec; | ||
63 | } | ||
64 | public String getManufacturer() { | ||
65 | return manufacturer; | ||
66 | } | ||
67 | public void setManufacturer(String manufacturer) { | ||
68 | this.manufacturer = manufacturer; | ||
69 | } | ||
70 | public String getLot() { | ||
71 | return lot; | ||
72 | } | ||
73 | public void setLot(String lot) { | ||
74 | this.lot = lot; | ||
75 | } | ||
76 | public Date getProductionDate() { | ||
77 | return productionDate; | ||
78 | } | ||
79 | public void setProductionDate(Date productionDate) { | ||
80 | this.productionDate = productionDate; | ||
81 | } | ||
82 | public Date getExpireDate() { | ||
83 | return expireDate; | ||
84 | } | ||
85 | public void setExpireDate(Date expireDate) { | ||
86 | this.expireDate = expireDate; | ||
87 | } | ||
88 | public BigDecimal getStockQty() { | ||
89 | return stockQty; | ||
90 | } | ||
91 | public void setStockQty(BigDecimal stockQty) { | ||
92 | this.stockQty = stockQty; | ||
93 | } | ||
94 | public Date getCreateTime() { | ||
95 | return createTime; | ||
96 | } | ||
97 | public void setCreateTime(Date createTime) { | ||
98 | this.createTime = createTime; | ||
99 | } | ||
100 | public Date getUpdateTime() { | ||
101 | return updateTime; | ||
102 | } | ||
103 | public void setUpdateTime(Date updateTime) { | ||
104 | this.updateTime = updateTime; | ||
105 | } | ||
106 | |||
107 | } |
1 | package com.phxl.common.response; | ||
2 | |||
3 | import com.alibaba.fastjson.annotation.JSONField; | ||
4 | |||
5 | public class PlatFormResponse{ | ||
6 | |||
7 | public String getFlag() { | ||
8 | return flag; | ||
9 | } | ||
10 | |||
11 | public void setFlag(String flag) { | ||
12 | this.flag = flag; | ||
13 | } | ||
14 | |||
15 | public String getMsg() { | ||
16 | return msg; | ||
17 | } | ||
18 | |||
19 | public void setMsg(String msg) { | ||
20 | this.msg = msg; | ||
21 | } | ||
22 | |||
23 | /** | ||
24 | * 平台接口返回状态码 | ||
25 | */ | ||
26 | @JSONField(name="FLAG") | ||
27 | private String flag; | ||
28 | |||
29 | /** | ||
30 | * 平台接口返回信息 | ||
31 | */ | ||
32 | @JSONField(name="MSG") | ||
33 | private String msg; | ||
34 | |||
35 | |||
36 | } |
1 | package com.phxl.modules.goods.service.interfaceLog; | ||
2 | |||
3 | import java.util.Date; | ||
4 | |||
5 | import org.springframework.beans.factory.annotation.Autowired; | ||
6 | import org.springframework.stereotype.Service; | ||
7 | |||
8 | import com.phxl.common.response.PlatFormResponse; | ||
9 | import com.phxl.modules.goods.dao.interfaceLog.InterfaceLogDao; | ||
10 | import com.phxl.modules.goods.entity.interfaceLog.InterfaceLog; | ||
11 | |||
12 | @Service | ||
13 | public class InterfaceLogService { | ||
14 | |||
15 | @Autowired | ||
16 | private InterfaceLogDao interfaceLogDao; | ||
17 | |||
18 | public void saveLog(String method, String params, String id){ | ||
19 | InterfaceLog interfaceLog = new InterfaceLog(); | ||
20 | interfaceLog.setId(id); | ||
21 | interfaceLog.setRequestMethod(method); | ||
22 | interfaceLog.setRequestTime(new Date()); | ||
23 | interfaceLog.setRequestParam(params); | ||
24 | interfaceLogDao.insert(interfaceLog); | ||
25 | } | ||
26 | |||
27 | public void setResultLog(PlatFormResponse hisResponse, String id, String exception){ | ||
28 | InterfaceLog interfaceLog = new InterfaceLog(); | ||
29 | interfaceLog.setId(id); | ||
30 | interfaceLog.setResultCode(hisResponse.getFlag()); | ||
31 | interfaceLog.setResultContent(hisResponse.getMsg()); | ||
32 | if(exception != null){ | ||
33 | interfaceLog.setException(exception); | ||
34 | } | ||
35 | interfaceLogDao.update(interfaceLog); | ||
36 | } | ||
37 | |||
38 | } |
This diff is collapsed.
Click to expand it.
1 | package com.phxl.common.utils; | ||
2 | |||
3 | |||
4 | |||
5 | public class BaseException extends RuntimeException { | ||
6 | /** | ||
7 | */ | ||
8 | private static final long serialVersionUID = 1L; | ||
9 | private int code; | ||
10 | private String msg; | ||
11 | private Object[] param=null; | ||
12 | |||
13 | public Object[] getParam() { | ||
14 | return param; | ||
15 | } | ||
16 | |||
17 | public void setParam(Object[] param) { | ||
18 | this.param = param; | ||
19 | } | ||
20 | |||
21 | public BaseException(String msg) { | ||
22 | super(msg); | ||
23 | this.code = ReturnCode.ERROR; | ||
24 | this.msg = msg; | ||
25 | } | ||
26 | |||
27 | public BaseException(int code) { | ||
28 | this.code = code; | ||
29 | } | ||
30 | |||
31 | public BaseException(int code, String msg) { | ||
32 | super(msg); | ||
33 | this.code = code; | ||
34 | this.msg = msg; | ||
35 | } | ||
36 | |||
37 | public BaseException(int code, Object ...agrs) { | ||
38 | param = agrs; | ||
39 | this.code = code; | ||
40 | } | ||
41 | |||
42 | public int getCode() { | ||
43 | return code; | ||
44 | } | ||
45 | |||
46 | public void setCode(int code) { | ||
47 | this.code = code; | ||
48 | } | ||
49 | |||
50 | public String getMsg() { | ||
51 | return msg; | ||
52 | } | ||
53 | |||
54 | public void setMsg(String msg) { | ||
55 | this.msg = msg; | ||
56 | } | ||
57 | |||
58 | |||
59 | } |
1 | eclipse.preferences.version=1 | ||
2 | encoding//conf/prod=UTF-8 | ||
3 | encoding//conf/prod/config.properties=UTF-8 | ||
4 | encoding//conf/stg/config.properties=UTF-8 | ||
5 | encoding//conf/test=UTF-8 | ||
6 | encoding//conf/test/config.properties=UTF-8 | ||
7 | encoding//src/main/java=UTF-8 | ||
8 | encoding//src/main/resources=UTF-8 | ||
9 | encoding//src/test/java=UTF-8 | ||
10 | encoding/<project>=UTF-8 |
1 | <?xml version="1.0" ?> | ||
2 | |||
3 | <!-- 属性描述 scan:性设置为true时,配置文件如果发生改变,将会被重新加载,默认值为true scanPeriod:设置监测配置文件是否有修改的时间间隔,如果没有给出时间单位,默认单位是毫秒。当scan为true时,此属性生效。默认的时间间隔为1分钟。 | ||
4 | debug:当此属性设置为true时,将打印出logback内部日志信息,实时查看logback运行状态。默认值为false。 --> | ||
5 | <configuration scan="true" scanPeriod="600 seconds" debug="false"> | ||
6 | <!-- 定义日志文件 输入位置 --> | ||
7 | <property name="log_dir" value="d://supplierlog"/> | ||
8 | <!-- 日志最大的历史--> | ||
9 | <property name="maxHistory" value="90"/> | ||
10 | <property name="normal-pattern" value="%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger - %msg%n"/> | ||
11 | |||
12 | <!-- ConsoleAppender 控制台输出日志 --> | ||
13 | <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender"> | ||
14 | <!-- 对日志进行格式化 --> | ||
15 | <encoder> | ||
16 | <pattern>${normal-pattern}</pattern> | ||
17 | </encoder> | ||
18 | </appender> | ||
19 | |||
20 | <!-- ERROR级别日志 --> | ||
21 | <!-- 滚动记录文件,先将日志记录到指定文件,当符合某个条件时,将日志记录到其他文件 RollingFileAppender--> | ||
22 | <appender name="ERROR" class="ch.qos.logback.core.rolling.RollingFileAppender"> | ||
23 | <!-- 过滤器,只记录WARN级别的日志 --> | ||
24 | <filter class="ch.qos.logback.classic.filter.LevelFilter"> | ||
25 | <level>ERROR</level> | ||
26 | <onMatch>ACCEPT</onMatch> | ||
27 | <onMismatch>DENY</onMismatch> | ||
28 | </filter> | ||
29 | <file>${log_dir}/error.log</file> | ||
30 | <!-- 配置日志所生成的目录--> | ||
31 | <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> | ||
32 | <fileNamePattern>${log_dir}/error-%d{yyyy-MM-dd-HH}.log.gz</fileNamePattern> | ||
33 | <maxHistory>${maxHistory}</maxHistory> | ||
34 | </rollingPolicy> | ||
35 | <encoder> | ||
36 | <pattern>${normal-pattern}</pattern> | ||
37 | </encoder> | ||
38 | </appender> | ||
39 | |||
40 | <!-- INFO级别日志 appender --> | ||
41 | <appender name="INFO" class="ch.qos.logback.core.rolling.RollingFileAppender"> | ||
42 | <filter class="ch.qos.logback.classic.filter.ThresholdFilter"> | ||
43 | <level>INFO</level> | ||
44 | </filter> | ||
45 | <file>${log_dir}/info.log</file> | ||
46 | <!-- 配置日志所生成的目录--> | ||
47 | <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> | ||
48 | <fileNamePattern>${log_dir}/info-%d{yyyy-MM-dd-HH}.log.gz</fileNamePattern> | ||
49 | <maxHistory>${maxHistory}</maxHistory> | ||
50 | </rollingPolicy> | ||
51 | <encoder> | ||
52 | <pattern>${normal-pattern}</pattern> | ||
53 | </encoder> | ||
54 | </appender> | ||
55 | |||
56 | <!-- DEBUG级别日志 appender --> | ||
57 | <appender name="DEBUG" class="ch.qos.logback.core.rolling.RollingFileAppender"> | ||
58 | <filter class="ch.qos.logback.classic.filter.ThresholdFilter"> | ||
59 | <level>DEBUG</level> | ||
60 | </filter> | ||
61 | <file>${log_dir}/debug.log</file> | ||
62 | <!-- 配置日志所生成的目录--> | ||
63 | <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> | ||
64 | <fileNamePattern>${log_dir}/debug-%d{yyyy-MM-dd-HH}.log.gz</fileNamePattern> | ||
65 | <maxHistory>${maxHistory}</maxHistory> | ||
66 | </rollingPolicy> | ||
67 | <encoder> | ||
68 | <pattern>${normal-pattern}</pattern> | ||
69 | </encoder> | ||
70 | </appender> | ||
71 | |||
72 | <logger name="org.apache.zookeeper.ClientCnxn" level="ERROR" additivity="false"/> | ||
73 | |||
74 | <logger name="com.phxl.modules.goods.dao" level="debug" additivity="false"> | ||
75 | <appender-ref ref="debug" /> | ||
76 | </logger> | ||
77 | |||
78 | <!-- root级别 DEBUG --> | ||
79 | <root level="DEBUG"> | ||
80 | <!-- 控制台输出 --> | ||
81 | <appender-ref ref="STDOUT" /> | ||
82 | <!-- 文件输出 --> | ||
83 | <appender-ref ref="ERROR" /> | ||
84 | <appender-ref ref="INFO" /> | ||
85 | <appender-ref ref="DEBUG" /> | ||
86 | </root> | ||
87 | </configuration> | ||
... | \ No newline at end of file | ... | \ No newline at end of file |
1 | <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> | ||
2 | <html lang="en"> | ||
3 | <head> | ||
4 | <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> | ||
5 | <title>送货单打印(普通A4)</title> | ||
6 | </head> | ||
7 | <body> | ||
8 | <div> | ||
9 | <div> | ||
10 | <table width="100%" border="0" cellspacing="0" cellpadding="0"> | ||
11 | <tr> | ||
12 | <td height="30" colspan="3"><h3 style=" font-weight:bold;text-align:center;letter-spacing: 5px;font-size:24px;">${rOrgName}${printDeliveryName}设备送货单</h3></td> | ||
13 | <td width="12%" height="30" rowspan="4" valign="top">${qrCode}</td> | ||
14 | </tr> | ||
15 | <tr> | ||
16 | <td width="25%" height="30">供应商:${fOrgName}</td> | ||
17 | <td width="25%" height="30">送货单号:${sendNo}</td> | ||
18 | <!--<td width="25%" height="30">医疗机构:${rOrgName}</td> --> | ||
19 | </tr> | ||
20 | <tr> | ||
21 | <td height="30">制单人:${sendUserName}</td> | ||
22 | <td height="30" colspan="2">制单时间:${sendDate}</td> | ||
23 | </tr> | ||
24 | <tr> | ||
25 | <td height="30" >收货科室:${tDeptName}</td> | ||
26 | <td height="30" colspan="2">收货地址:${tfAddress}</td> | ||
27 | </tr> | ||
28 | <tr> | ||
29 | |||
30 | </tr> | ||
31 | </table> | ||
32 | </div> | ||
33 | <div> | ||
34 | <table style="border-collapse:collapse;border-spacing:0;font-size: 14px;"> | ||
35 | <tr style="height: 25px;"> | ||
36 | <td style="background: #eaeaea;text-align: center;border-left:1px solid #000000;border-top:1px solid #000000;">序号</td> | ||
37 | <td style="background: #eaeaea;text-align: center;border-left:1px solid #000000;border-top:1px solid #000000;" width="190">产品名称</td> | ||
38 | <td style="background: #eaeaea;text-align: center;border-left:1px solid #000000;border-top:1px solid #000000;" width="100">规格</td> | ||
39 | <td style="background: #eaeaea;text-align: center;border-left:1px solid #000000;border-top:1px solid #000000;" width="100">型号</td> | ||
40 | <td style="background: #eaeaea;text-align: center;border-left:1px solid #000000;border-top:1px solid #000000;" width="50">单位</td> | ||
41 | <td style="background: #eaeaea;text-align: center;border-left:1px solid #000000;border-top:1px solid #000000;" width="50">数量</td> | ||
42 | <td style="background: #eaeaea;text-align: center;border-left:1px solid #000000;border-top:1px solid #000000;" width="50">单价</td> | ||
43 | <td style="background: #eaeaea;text-align: center;border-left:1px solid #000000;border-top:1px solid #000000;border-right:1px solid #000000;" width="80">金额</td> | ||
44 | </tr> | ||
45 | ${tableContent} | ||
46 | </table> | ||
47 | </div> | ||
48 | <div> | ||
49 | ${afterTable | ||
50 | <table width="100%" border="0" cellspacing="0" cellpadding="0"> | ||
51 | <tr height="35px;"> | ||
52 | <td width="30%" align="left">验收人:</td> | ||
53 | <td width="30%" align="left">收货人:</td> | ||
54 | <td width="20%" align="left">总金额:${totalPrice}</td> | ||
55 | </tr> | ||
56 | </table> | ||
57 | } | ||
58 | </div> | ||
59 | </div> | ||
60 | </body> | ||
61 | </html> | ||
... | \ No newline at end of file | ... | \ No newline at end of file |
1 | /** | ||
2 | * Project Name:html2pdf File Name:PdfReportHeaderFooter.java Package Name:com.kirin.common.util.pdf Date:2015年11月18日下午4:36:17 Copyright (c) 2015, PHXL All Rights Reserved. | ||
3 | */ | ||
4 | |||
5 | package com.phxl.common.util; | ||
6 | |||
7 | import java.io.IOException; | ||
8 | |||
9 | import com.itextpdf.text.Document; | ||
10 | import com.itextpdf.text.DocumentException; | ||
11 | import com.itextpdf.text.Element; | ||
12 | import com.itextpdf.text.Font; | ||
13 | import com.itextpdf.text.Image; | ||
14 | import com.itextpdf.text.PageSize; | ||
15 | import com.itextpdf.text.Phrase; | ||
16 | import com.itextpdf.text.Rectangle; | ||
17 | import com.itextpdf.text.pdf.BaseFont; | ||
18 | import com.itextpdf.text.pdf.ColumnText; | ||
19 | import com.itextpdf.text.pdf.PdfContentByte; | ||
20 | import com.itextpdf.text.pdf.PdfPageEventHelper; | ||
21 | import com.itextpdf.text.pdf.PdfTemplate; | ||
22 | import com.itextpdf.text.pdf.PdfWriter; | ||
23 | |||
24 | /** | ||
25 | * ClassName:PdfReportHeaderFooter <br/> | ||
26 | * Function: TODO ADD FUNCTION. <br/> | ||
27 | * Reason: TODO ADD REASON. <br/> | ||
28 | * Date: 2015年11月18日 下午4:36:17 <br/> | ||
29 | * | ||
30 | * @author | ||
31 | * @version | ||
32 | * @since JDK 1.6 | ||
33 | * @see | ||
34 | */ | ||
35 | public class PdfReportHeaderFooter extends PdfPageEventHelper { | ||
36 | |||
37 | public String header = ""; | ||
38 | public int presentFontSize = 12; | ||
39 | public Rectangle pageSize = PageSize.A4; | ||
40 | public PdfTemplate total; | ||
41 | public BaseFont bf = null; | ||
42 | public Font fontDetail = null; | ||
43 | |||
44 | public String waterMarkImgSrc = ""; | ||
45 | |||
46 | public PdfReportHeaderFooter() { | ||
47 | } | ||
48 | |||
49 | public PdfReportHeaderFooter(String header, int presentFontSize, Rectangle pageSize) { | ||
50 | this.header = header; | ||
51 | this.presentFontSize = presentFontSize; | ||
52 | this.pageSize = pageSize; | ||
53 | } | ||
54 | |||
55 | public PdfReportHeaderFooter(String waterMarkImgSrc) { | ||
56 | this.waterMarkImgSrc = waterMarkImgSrc; | ||
57 | } | ||
58 | |||
59 | public void setHeader(String header) { | ||
60 | this.header = header; | ||
61 | } | ||
62 | |||
63 | public void setPresentFontSize(int presentFontSize) { | ||
64 | this.presentFontSize = presentFontSize; | ||
65 | } | ||
66 | |||
67 | |||
68 | public String getWaterMarkImgSrc() { | ||
69 | return waterMarkImgSrc; | ||
70 | } | ||
71 | |||
72 | |||
73 | public void setWaterMarkImgSrc(String waterMarkImgSrc) { | ||
74 | this.waterMarkImgSrc = waterMarkImgSrc; | ||
75 | } | ||
76 | |||
77 | public void onOpenDocument(PdfWriter writer, Document document) { | ||
78 | total = writer.getDirectContent().createTemplate(50, 50); | ||
79 | } | ||
80 | |||
81 | public void onEndPage(PdfWriter writer, Document document) { | ||
82 | try { | ||
83 | if (bf == null) { | ||
84 | bf = BaseFont.createFont("STSong-Light", "UniGB-UCS2-H", false); | ||
85 | } | ||
86 | if (fontDetail == null) { | ||
87 | fontDetail = new Font(bf, presentFontSize, Font.NORMAL);// 数据体字体 | ||
88 | } | ||
89 | } catch (DocumentException e) { | ||
90 | e.printStackTrace(); | ||
91 | } catch (IOException e) { | ||
92 | e.printStackTrace(); | ||
93 | } | ||
94 | // 1.写入页眉 | ||
95 | ColumnText.showTextAligned(writer.getDirectContent(), Element.ALIGN_LEFT, new Phrase(header, fontDetail), | ||
96 | document.left(), document.top() + 20, 0); | ||
97 | // 2.写入前半部分的 第 X页/共 | ||
98 | int pageS = writer.getPageNumber(); | ||
99 | String foot1 = "第 " + pageS + " 页 /共"; | ||
100 | Phrase footer = new Phrase(foot1, fontDetail); | ||
101 | // 3.计算前半部分的foot1的长度,后面好定位最后一部分的'Y页'这俩字的x轴坐标,字体长度也要计算进去 = len | ||
102 | float len = bf.getWidthPoint(foot1, presentFontSize); | ||
103 | // 4.拿到当前的PdfContentByte | ||
104 | PdfContentByte cb = writer.getDirectContent(); | ||
105 | // 5.写入页脚1,x轴就是(右margin+左margin + right() -left()- len)/2.0F | ||
106 | // 再给偏移20F适合人类视觉感受,否则肉眼看上去就太偏左了 | ||
107 | // ,y轴就是底边界-20,否则就贴边重叠到数据体里了就不是页脚了;注意Y轴是从下往上累加的,最上方的Top值是大于Bottom好几百开外的。 | ||
108 | ColumnText.showTextAligned(cb, Element.ALIGN_CENTER, footer, | ||
109 | (document.rightMargin() + document.right() + document.leftMargin() - document.left() - len) / 2.0F | ||
110 | + 20F, | ||
111 | document.bottom() - 20, 0); | ||
112 | // 6.写入页脚2的模板(就是页脚的Y页这俩字)添加到文档中,计算模板的和Y轴,X=(右边界-左边界 - 前半部分的len值)/2.0F + | ||
113 | // len , y 轴和之前的保持一致,底边界-20 | ||
114 | cb.addTemplate(total, | ||
115 | (document.rightMargin() + document.right() + document.leftMargin() - document.left()) / 2.0F + 20F, | ||
116 | document.bottom() - 20); | ||
117 | |||
118 | if(!waterMarkImgSrc.equals("")){ | ||
119 | //增加水印图片 | ||
120 | PdfContentByte canvas = writer.getDirectContentUnder(); | ||
121 | Image image; | ||
122 | try { | ||
123 | image = Image.getInstance(waterMarkImgSrc); | ||
124 | image.scaleAbsolute(PageSize.A4.rotate()); | ||
125 | image.setAbsolutePosition(0, 0); | ||
126 | canvas.addImage(image); | ||
127 | } catch (Exception e) { | ||
128 | e.printStackTrace(); | ||
129 | } | ||
130 | } | ||
131 | } | ||
132 | |||
133 | public void onCloseDocument(PdfWriter writer, Document document) { | ||
134 | total.beginText(); | ||
135 | total.setFontAndSize(bf, presentFontSize);// 生成的模版的字体、颜色 | ||
136 | String foot2 = " " + (writer.getPageNumber() - 1) + " 页"; | ||
137 | total.showText(foot2);// 模版显示的内容 | ||
138 | total.endText(); | ||
139 | total.closePath(); | ||
140 | } | ||
141 | } |
This diff is collapsed.
Click to expand it.
1 | package com.phxl.modules.goods.entity.billsettlement; | ||
2 | |||
3 | import java.math.BigDecimal; | ||
4 | import java.util.Date; | ||
5 | |||
6 | /** | ||
7 | * 医院结算单明细信息 | ||
8 | */ | ||
9 | |||
10 | public class BillSettlementDetail{ | ||
11 | private String id; | ||
12 | private String settleBillNo; //结算单号 | ||
13 | private int rowNo; //行号 | ||
14 | private String goodsCode; //采购方_商品编码 | ||
15 | private String goodsName; //采购方_商品名称 | ||
16 | private String goodsSpec; | ||
17 | private String producerName; | ||
18 | private String goodsCate; | ||
19 | private BigDecimal settleQty; //采购方_结算数量 | ||
20 | private String unit; //采购方_包装单位 | ||
21 | private BigDecimal settlePrice; //结算价格 | ||
22 | private BigDecimal settleAmount; //结算金额 | ||
23 | private String registKey; //批准文号 | ||
24 | private String lot; | ||
25 | private Date productionDate; | ||
26 | private Date expireDate; | ||
27 | private Date create_time; | ||
28 | private Date update_time; | ||
29 | |||
30 | public String getId() { | ||
31 | return id; | ||
32 | } | ||
33 | public void setId(String id) { | ||
34 | this.id = id; | ||
35 | } | ||
36 | public String getSettleBillNo() { | ||
37 | return settleBillNo; | ||
38 | } | ||
39 | public void setSettleBillNo(String settleBillNo) { | ||
40 | this.settleBillNo = settleBillNo; | ||
41 | } | ||
42 | public int getRowNo() { | ||
43 | return rowNo; | ||
44 | } | ||
45 | public void setRowNo(int rowNo) { | ||
46 | this.rowNo = rowNo; | ||
47 | } | ||
48 | public String getGoodsCode() { | ||
49 | return goodsCode; | ||
50 | } | ||
51 | public void setGoodsCode(String goodsCode) { | ||
52 | this.goodsCode = goodsCode; | ||
53 | } | ||
54 | public String getGoodsName() { | ||
55 | return goodsName; | ||
56 | } | ||
57 | public void setGoodsName(String goodsName) { | ||
58 | this.goodsName = goodsName; | ||
59 | } | ||
60 | public String getGoodsSpec() { | ||
61 | return goodsSpec; | ||
62 | } | ||
63 | public void setGoodsSpec(String goodsSpec) { | ||
64 | this.goodsSpec = goodsSpec; | ||
65 | } | ||
66 | public String getProducerName() { | ||
67 | return producerName; | ||
68 | } | ||
69 | public void setProducerName(String producerName) { | ||
70 | this.producerName = producerName; | ||
71 | } | ||
72 | public String getGoodsCate() { | ||
73 | return goodsCate; | ||
74 | } | ||
75 | public void setGoodsCate(String goodsCate) { | ||
76 | this.goodsCate = goodsCate; | ||
77 | } | ||
78 | public BigDecimal getSettleQty() { | ||
79 | return settleQty; | ||
80 | } | ||
81 | public void setSettleQty(BigDecimal settleQty) { | ||
82 | this.settleQty = settleQty; | ||
83 | } | ||
84 | public String getUnit() { | ||
85 | return unit; | ||
86 | } | ||
87 | public void setUnit(String unit) { | ||
88 | this.unit = unit; | ||
89 | } | ||
90 | public BigDecimal getSettlePrice() { | ||
91 | return settlePrice; | ||
92 | } | ||
93 | public void setSettlePrice(BigDecimal settlePrice) { | ||
94 | this.settlePrice = settlePrice; | ||
95 | } | ||
96 | public BigDecimal getSettleAmount() { | ||
97 | return settleAmount; | ||
98 | } | ||
99 | public void setSettleAmount(BigDecimal settleAmount) { | ||
100 | this.settleAmount = settleAmount; | ||
101 | } | ||
102 | public String getRegistKey() { | ||
103 | return registKey; | ||
104 | } | ||
105 | public void setRegistKey(String registKey) { | ||
106 | this.registKey = registKey; | ||
107 | } | ||
108 | public String getLot() { | ||
109 | return lot; | ||
110 | } | ||
111 | public void setLot(String lot) { | ||
112 | this.lot = lot; | ||
113 | } | ||
114 | public Date getProductionDate() { | ||
115 | return productionDate; | ||
116 | } | ||
117 | public void setProductionDate(Date productionDate) { | ||
118 | this.productionDate = productionDate; | ||
119 | } | ||
120 | public Date getExpireDate() { | ||
121 | return expireDate; | ||
122 | } | ||
123 | public void setExpireDate(Date expireDate) { | ||
124 | this.expireDate = expireDate; | ||
125 | } | ||
126 | public Date getCreate_time() { | ||
127 | return create_time; | ||
128 | } | ||
129 | public void setCreate_time(Date create_time) { | ||
130 | this.create_time = create_time; | ||
131 | } | ||
132 | public Date getUpdate_time() { | ||
133 | return update_time; | ||
134 | } | ||
135 | public void setUpdate_time(Date update_time) { | ||
136 | this.update_time = update_time; | ||
137 | } | ||
138 | } |
1 | <?xml version="1.0" encoding="UTF-8" ?> | ||
2 | <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" > | ||
3 | <mapper namespace="com.phxl.modules.goods.dao.medinstore.MedInStoreDetailDao"> | ||
4 | |||
5 | <!--BaseResultMap --> | ||
6 | <resultMap id="BaseResultMap" | ||
7 | type="com.phxl.modules.goods.entity.medinstore.MedInStoreDetail"> | ||
8 | <id column="id" property="id" jdbcType="BIGINT" /> | ||
9 | <result column="bill_no" property="billNo" jdbcType="VARCHAR" /> | ||
10 | <result column="row_no" property="rowNo" jdbcType="TINYINT" /> | ||
11 | <result column="med_plan_row_no" property="medPlanRowNo" jdbcType="TINYINT" /> | ||
12 | <result column="supplier_do_no" property="supplierDoNo" jdbcType="VARCHAR" /> | ||
13 | <result column="supplier_do_row_no" property="supplierDoRowNo" jdbcType="TINYINT" /> | ||
14 | <result column="goods_code" property="goodsCode" jdbcType="VARCHAR" /> | ||
15 | <result column="goods_name" property="goodsName" jdbcType="VARCHAR" /> | ||
16 | <result column="goods_spec" property="goodsSpec" jdbcType="VARCHAR" /> | ||
17 | <result column="unit" property="unit" jdbcType="VARCHAR" /> | ||
18 | <result column="manufacturer" property="manufacturer" jdbcType="VARCHAR" /> | ||
19 | <result column="purchaser_price" property="purchaserPrice" jdbcType="DECIMAL" /> | ||
20 | <result column="amount" property="amount" jdbcType="DECIMAL" /> | ||
21 | <result column="lot" property="lot" jdbcType="VARCHAR" /> | ||
22 | <result column="production_date" property="productionDate" jdbcType="TIMESTAMP" /> | ||
23 | <result column="expire_date" property="expireDate" jdbcType="TIMESTAMP" /> | ||
24 | <result column="arrivalqty" property="arrivalqty" jdbcType="DECIMAL" /> | ||
25 | <result column="mvqty" property="mvqty" jdbcType="DECIMAL" /> | ||
26 | <result column="memo" property="memo" jdbcType="VARCHAR" /> | ||
27 | </resultMap> | ||
28 | |||
29 | <!--Base_Column_List --> | ||
30 | <sql id="Base_Column_List">id,bill_no,row_no,med_plan_row_no,supplier_do_no,supplier_do_row_no,goods_code,goods_name,goods_spec,unit,manufacturer,purchaser_price,amount,lot,production_date,expire_date,arrivalqty,mvqty,memo</sql> | ||
31 | |||
32 | <!--批量插入MedInStoreDetail --> | ||
33 | <insert id="batchInsert" parameterType="list"> | ||
34 | insert into med_hli_in_store_detail (id,bill_no,row_no,med_plan_row_no,supplier_do_no,supplier_do_row_no,goods_code,goods_name,goods_spec,unit,manufacturer,purchaser_price,amount,lot,production_date,expire_date,arrivalqty,mvqty,memo) | ||
35 | values | ||
36 | <foreach collection ="list" item="obj" separator =","> | ||
37 | <trim prefix=" (" suffix=")" suffixOverrides=","> | ||
38 | #{obj.id}, | ||
39 | #{obj.billNo}, | ||
40 | #{obj.rowNo}, | ||
41 | #{obj.medPlanRowNo}, | ||
42 | #{obj.supplierDoNo}, | ||
43 | #{obj.supplierDoRowNo}, | ||
44 | #{obj.goodsCode}, | ||
45 | #{obj.goodsName}, | ||
46 | #{obj.goodsSpec}, | ||
47 | #{obj.unit}, | ||
48 | #{obj.manufacturer}, | ||
49 | #{obj.purchaserPrice}, | ||
50 | #{obj.amount}, | ||
51 | #{obj.lot}, | ||
52 | #{obj.productionDate}, | ||
53 | #{obj.expireDate}, | ||
54 | #{obj.arrivalqty}, | ||
55 | #{obj.mvqty}, | ||
56 | #{obj.memo} | ||
57 | </trim> | ||
58 | </foreach> | ||
59 | </insert> | ||
60 | |||
61 | |||
62 | </mapper> | ||
... | \ No newline at end of file | ... | \ No newline at end of file |
1 | package com.phxl.modules.goods.entity.medplan; | ||
2 | |||
3 | import java.util.Date; | ||
4 | import java.util.List; | ||
5 | |||
6 | /** | ||
7 | * 补货计划 | ||
8 | */ | ||
9 | public class MedPlan{ | ||
10 | |||
11 | public List<MedPlanDetail> getTrmedplandetails() { | ||
12 | return trmedplandetails; | ||
13 | } | ||
14 | public void setTrmedplandetails(List<MedPlanDetail> trmedplandetails) { | ||
15 | this.trmedplandetails = trmedplandetails; | ||
16 | } | ||
17 | private String medCode; //医疗机构代码 | ||
18 | private String medName; //医疗机构名称 | ||
19 | private String supplierCode; //平台供应商代码 | ||
20 | private String suppliername; //平台供应商名称 | ||
21 | private String billNo; //单据编号 | ||
22 | private String billType; //单据类型 | ||
23 | private String settleType; //结算方式(0:零库存 1:非零库存) | ||
24 | private String medDeptCode; //订货科室编码 | ||
25 | private String medDeptName; //订货科室名称 | ||
26 | private String medStoreCode; //订货库房编码 | ||
27 | private String medStoreName; //订货库房名称 | ||
28 | private String firstFlag; //是否优先 | ||
29 | private Date planBeginDate; //订货日期 | ||
30 | private Date planEndDate; //要求到货日期 | ||
31 | private String memo; //备注 | ||
32 | private String operaterName; //操作人员姓名 | ||
33 | private Date inputDate; //制单日期 | ||
34 | private Date create_time; //创建时间 | ||
35 | private Date update_time; //更新时间 | ||
36 | private List<MedPlanDetail> trmedplandetails; | ||
37 | |||
38 | private String id; | ||
39 | |||
40 | public String getId() { | ||
41 | return id; | ||
42 | } | ||
43 | public void setId(String id) { | ||
44 | this.id = id; | ||
45 | } | ||
46 | |||
47 | public String getMedCode() { | ||
48 | return medCode; | ||
49 | } | ||
50 | public void setMedCode(String medCode) { | ||
51 | this.medCode = medCode; | ||
52 | } | ||
53 | public String getMedName() { | ||
54 | return medName; | ||
55 | } | ||
56 | public void setMedName(String medName) { | ||
57 | this.medName = medName; | ||
58 | } | ||
59 | public String getSupplierCode() { | ||
60 | return supplierCode; | ||
61 | } | ||
62 | public void setSupplierCode(String supplierCode) { | ||
63 | this.supplierCode = supplierCode; | ||
64 | } | ||
65 | public String getSuppliername() { | ||
66 | return suppliername; | ||
67 | } | ||
68 | public void setSuppliername(String suppliername) { | ||
69 | this.suppliername = suppliername; | ||
70 | } | ||
71 | public String getBillNo() { | ||
72 | return billNo; | ||
73 | } | ||
74 | public void setBillNo(String billNo) { | ||
75 | this.billNo = billNo; | ||
76 | } | ||
77 | public String getBillType() { | ||
78 | return billType; | ||
79 | } | ||
80 | public void setBillType(String billType) { | ||
81 | this.billType = billType; | ||
82 | } | ||
83 | public String getMedDeptCode() { | ||
84 | return medDeptCode; | ||
85 | } | ||
86 | public void setMedDeptCode(String medDeptCode) { | ||
87 | this.medDeptCode = medDeptCode; | ||
88 | } | ||
89 | public String getMedDeptName() { | ||
90 | return medDeptName; | ||
91 | } | ||
92 | public void setMedDeptName(String medDeptName) { | ||
93 | this.medDeptName = medDeptName; | ||
94 | } | ||
95 | public String getMedStoreCode() { | ||
96 | return medStoreCode; | ||
97 | } | ||
98 | public void setMedStoreCode(String medStoreCode) { | ||
99 | this.medStoreCode = medStoreCode; | ||
100 | } | ||
101 | public String getMedStoreName() { | ||
102 | return medStoreName; | ||
103 | } | ||
104 | public void setMedStoreName(String medStoreName) { | ||
105 | this.medStoreName = medStoreName; | ||
106 | } | ||
107 | public String getFirstFlag() { | ||
108 | return firstFlag; | ||
109 | } | ||
110 | public void setFirstFlag(String firstFlag) { | ||
111 | this.firstFlag = firstFlag; | ||
112 | } | ||
113 | public Date getPlanBeginDate() { | ||
114 | return planBeginDate; | ||
115 | } | ||
116 | public void setPlanBeginDate(Date planBeginDate) { | ||
117 | this.planBeginDate = planBeginDate; | ||
118 | } | ||
119 | public Date getPlanEndDate() { | ||
120 | return planEndDate; | ||
121 | } | ||
122 | public void setPlanEndDate(Date planEndDate) { | ||
123 | this.planEndDate = planEndDate; | ||
124 | } | ||
125 | public String getMemo() { | ||
126 | return memo; | ||
127 | } | ||
128 | public void setMemo(String memo) { | ||
129 | this.memo = memo; | ||
130 | } | ||
131 | public String getOperaterName() { | ||
132 | return operaterName; | ||
133 | } | ||
134 | public void setOperaterName(String operaterName) { | ||
135 | this.operaterName = operaterName; | ||
136 | } | ||
137 | public Date getInputDate() { | ||
138 | return inputDate; | ||
139 | } | ||
140 | public void setInputDate(Date inputDate) { | ||
141 | this.inputDate = inputDate; | ||
142 | } | ||
143 | public Date getCreate_time() { | ||
144 | return create_time; | ||
145 | } | ||
146 | public void setCreate_time(Date create_time) { | ||
147 | this.create_time = create_time; | ||
148 | } | ||
149 | public Date getUpdate_time() { | ||
150 | return update_time; | ||
151 | } | ||
152 | public void setUpdate_time(Date update_time) { | ||
153 | this.update_time = update_time; | ||
154 | } | ||
155 | |||
156 | public String getSettleType() { | ||
157 | return settleType; | ||
158 | } | ||
159 | |||
160 | public void setSettleType(String settleType) { | ||
161 | this.settleType = settleType; | ||
162 | } | ||
163 | } |
1 | eclipse.preferences.version=1 | ||
2 | org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled | ||
3 | org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.6 | ||
4 | org.eclipse.jdt.core.compiler.compliance=1.6 | ||
5 | org.eclipse.jdt.core.compiler.problem.assertIdentifier=error | ||
6 | org.eclipse.jdt.core.compiler.problem.enumIdentifier=error | ||
7 | org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning | ||
8 | org.eclipse.jdt.core.compiler.source=1.6 |
1 | package com.phxl.modules.goods.service.medinstore; | ||
2 | |||
3 | import java.math.BigDecimal; | ||
4 | import java.util.List; | ||
5 | |||
6 | import org.apache.commons.lang3.StringUtils; | ||
7 | import org.slf4j.Logger; | ||
8 | import org.slf4j.LoggerFactory; | ||
9 | import org.springframework.beans.factory.annotation.Autowired; | ||
10 | import org.springframework.stereotype.Service; | ||
11 | |||
12 | import com.phxl.common.utils.BaseException; | ||
13 | import com.phxl.common.utils.IdUtil; | ||
14 | import com.phxl.modules.goods.dao.medinstore.MedInStoreDao; | ||
15 | import com.phxl.modules.goods.dao.medinstore.MedInStoreDetailDao; | ||
16 | import com.phxl.modules.goods.entity.medinstore.MedInStore; | ||
17 | import com.phxl.modules.goods.entity.medinstore.MedInStoreDetail; | ||
18 | import com.phxl.modules.goods.entity.medinstore.MedInStoreWithDetail; | ||
19 | |||
20 | @Service | ||
21 | public class MedInStoreService { | ||
22 | @Autowired | ||
23 | private MedInStoreDao inStoreDao; | ||
24 | |||
25 | @Autowired | ||
26 | private MedInStoreDetailDao inStoreDetailDao; | ||
27 | |||
28 | /** | ||
29 | * 日志对象 | ||
30 | */ | ||
31 | protected Logger logger = LoggerFactory.getLogger(getClass()); | ||
32 | |||
33 | |||
34 | private void checkMedInStore(List<MedInStoreWithDetail> instores) { | ||
35 | if(instores == null || instores.size() == 0){ | ||
36 | logger.error("无相应入库单单据信息"); | ||
37 | throw new BaseException("无相应入库单单据信息"); | ||
38 | } | ||
39 | for (MedInStoreWithDetail medinstore : instores) { | ||
40 | String medCode = medinstore.getBill().getMedGuid(); | ||
41 | String medName = medinstore.getBill().getMedName(); | ||
42 | if (StringUtils.isEmpty(medCode) || StringUtils.isEmpty(medName)) { | ||
43 | logger.error("入库单医疗机构编码以及医疗机构名称不能为空"); | ||
44 | throw new BaseException("入库单医疗机构编码以及医疗机构名称不能为空"); | ||
45 | } | ||
46 | String supplierCode = medinstore.getBill().getSupplierGuid(); | ||
47 | String suppliername = medinstore.getBill().getSupplierName(); | ||
48 | if (StringUtils.isEmpty(supplierCode) || StringUtils.isEmpty(suppliername)) { | ||
49 | logger.error("入库单平台供应商代码以及平台供应商名称不能为空"); | ||
50 | throw new BaseException("入库单平台供应商代码以及平台供应商名称不能为空"); | ||
51 | } | ||
52 | String billNo = medinstore.getBill().getBillNo(); | ||
53 | if (StringUtils.isEmpty(billNo)) { | ||
54 | logger.error("入库单单据编号不能为空"); | ||
55 | throw new BaseException("入库单单据编号不能为空"); | ||
56 | } | ||
57 | String billType = medinstore.getBill().getBillType(); | ||
58 | if (StringUtils.isEmpty(billType)) { | ||
59 | logger.error("入库单单据类型不能为空"); | ||
60 | throw new BaseException("入库单单据类型不能为空"); | ||
61 | } | ||
62 | List<MedInStoreDetail> details = medinstore.getBill().getBilldetaillist(); | ||
63 | if(details == null || details.size() == 0){ | ||
64 | logger.error("入库单单据编号:"+billNo+"入库明细不能为空"); | ||
65 | throw new BaseException("入库单单据编号:"+billNo+"入库明细不能为空"); | ||
66 | } | ||
67 | for (MedInStoreDetail medInStoreDetail : details) { | ||
68 | String detailBillNo = medInStoreDetail.getBillNo(); | ||
69 | if (StringUtils.isEmpty(detailBillNo)) { | ||
70 | logger.error("入库单单据编号:"+billNo+"入库明细单据编号不能为空"); | ||
71 | throw new BaseException("入库单单据编号:"+billNo+"入库明细单据编号不能为空"); | ||
72 | } | ||
73 | String goodsCode = medInStoreDetail.getGoodsCode(); | ||
74 | String goodsName = medInStoreDetail.getGoodsName(); | ||
75 | if (StringUtils.isEmpty(goodsCode) || StringUtils.isEmpty(goodsName)) { | ||
76 | logger.error("入库单单据编号:"+billNo+"入库明细商品编码以及商品名称不能为空"); | ||
77 | throw new BaseException("入库单单据编号:"+billNo+"入库明细商品编码以及商品名称不能为空"); | ||
78 | } | ||
79 | BigDecimal mvQty = medInStoreDetail.getMvqty(); | ||
80 | if (mvQty == null) { | ||
81 | logger.error("入库单单据编号:"+billNo+"入库明细商品入库实收数不能为空"); | ||
82 | throw new BaseException("入库单单据编号:"+billNo+"入库明细商品入库实收数不能为空"); | ||
83 | } | ||
84 | BigDecimal arrivalQty = medInStoreDetail.getArrivalqty(); | ||
85 | if (arrivalQty == null) { | ||
86 | logger.error("入库单单据编号:"+billNo+"入库明细商品出库数量不能为空"); | ||
87 | throw new BaseException("补货计划单据编号:"+billNo+"入库明细商品出库数量不能为空"); | ||
88 | } | ||
89 | BigDecimal amount = medInStoreDetail.getAmount(); | ||
90 | if (amount == null) { | ||
91 | logger.error("入库单单据编号:"+billNo+"入库明细商品金额不能为空"); | ||
92 | throw new BaseException("入库单单据编号:"+billNo+"入库明细商品金额不能为空"); | ||
93 | } | ||
94 | String unit = medInStoreDetail.getUnit(); | ||
95 | if (StringUtils.isEmpty(unit)) { | ||
96 | logger.error("入库单单据编号:"+billNo+"入库明细商品单位不能为空"); | ||
97 | throw new BaseException("入库单单据编号:"+billNo+"入库明细商品单位不能为空"); | ||
98 | } | ||
99 | BigDecimal purchaserPrice = medInStoreDetail.getPurchaserPrice(); | ||
100 | if (purchaserPrice == null) { | ||
101 | logger.error("入库单单据编号:"+billNo+"入库明细商品采购价格不能为空"); | ||
102 | throw new BaseException("入库单单据编号:"+billNo+"入库明细商品采购价格不能为空"); | ||
103 | } | ||
104 | String medPlanRowNo = medInStoreDetail.getMedPlanRowNo(); | ||
105 | if (StringUtils.isEmpty(medPlanRowNo)) { | ||
106 | logger.error("入库单单据编号:"+billNo+"入库明细补货计划单据原行号不能为空"); | ||
107 | throw new BaseException("入库单单据编号:"+billNo+"入库明细补货计划单据原行号不能为空"); | ||
108 | } | ||
109 | String supplierDoNo = medInStoreDetail.getSupplierDoNo(); | ||
110 | if (StringUtils.isEmpty(supplierDoNo)) { | ||
111 | logger.error("入库单单据编号:"+billNo+"入库明细供应商出库单号不能为空"); | ||
112 | throw new BaseException("入库单单据编号:"+billNo+"入库明细供应商出库单号不能为空"); | ||
113 | } | ||
114 | String supplierDoRowNo = medInStoreDetail.getSupplierDoRowNo(); | ||
115 | if (StringUtils.isEmpty(supplierDoRowNo)) { | ||
116 | logger.error("入库单单据编号:"+billNo+"入库明细供应商出库单行号不能为空"); | ||
117 | throw new BaseException("入库单单据编号:"+billNo+"入库明细供应商出库单行号不能为空"); | ||
118 | } | ||
119 | } | ||
120 | } | ||
121 | |||
122 | |||
123 | } | ||
124 | |||
125 | |||
126 | public boolean batchSave(List<MedInStoreWithDetail> instores) { | ||
127 | |||
128 | boolean result = true; | ||
129 | try { | ||
130 | checkMedInStore(instores); | ||
131 | } catch (Exception e) { | ||
132 | throw new BaseException(e.getMessage()); | ||
133 | } | ||
134 | for (MedInStoreWithDetail medInStoreWithDetail : instores) { | ||
135 | MedInStore medinstore = medInStoreWithDetail.getBill(); | ||
136 | List<MedInStoreDetail> details = medinstore.getBilldetaillist(); | ||
137 | String id = IdUtil.uuid(); | ||
138 | medInStoreWithDetail.getBill().setId(id); | ||
139 | if(details != null && details.size() != 0){ | ||
140 | for (MedInStoreDetail medinstoredetail : details) { | ||
141 | medinstoredetail.setBillNo(medInStoreWithDetail.getBill().getBillNo()); | ||
142 | medinstoredetail.setId(id); | ||
143 | } | ||
144 | inStoreDao.insert(medinstore); | ||
145 | inStoreDetailDao.batchInsert(details); | ||
146 | } | ||
147 | } | ||
148 | return result; | ||
149 | } | ||
150 | |||
151 | |||
152 | |||
153 | } |
1 | <?xml version="1.0" encoding="UTF-8" ?> | ||
2 | <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" > | ||
3 | <mapper namespace="com.phxl.modules.goods.dao.medplan.MedPlanDetailDao"> | ||
4 | |||
5 | <!--BaseResultMap --> | ||
6 | <resultMap id="BaseResultMap" | ||
7 | type="com.phxl.modules.goods.entity.medplan.MedPlanDetail"> | ||
8 | <id column="id" property="id" jdbcType="BIGINT" /> | ||
9 | <result column="bill_no" property="billNo" jdbcType="VARCHAR" /> | ||
10 | <result column="row_no" property="rowNo" jdbcType="TINYINT" /> | ||
11 | <result column="goods_code" property="goodsCode" jdbcType="VARCHAR" /> | ||
12 | <result column="goods_name" property="goodsName" jdbcType="VARCHAR" /> | ||
13 | <result column="goods_spec" property="goodsSpec" jdbcType="VARCHAR" /> | ||
14 | <result column="manufacturer" property="manufacturer" jdbcType="VARCHAR" /> | ||
15 | <result column="po_qty" property="poQty" jdbcType="DECIMAL" /> | ||
16 | <result column="unit" property="unit" jdbcType="VARCHAR" /> | ||
17 | <result column="taxprice" property="taxprice" jdbcType="DECIMAL" /> | ||
18 | <result column="taxsum" property="taxsum" jdbcType="DECIMAL" /> | ||
19 | </resultMap> | ||
20 | |||
21 | <!--Base_Column_List --> | ||
22 | <sql id="Base_Column_List">id,bill_no,row_no,goods_code,goods_name,goods_spec,manufacturer,po_qty,unit,taxprice,taxsum</sql> | ||
23 | |||
24 | <!--批量插入MedPlanDetail --> | ||
25 | <insert id="batchInsert" parameterType="list"> | ||
26 | insert into med_hli_plan_detail (id,bill_no,row_no,goods_code,goods_name,goods_spec,manufacturer,po_qty,unit,taxprice,taxsum) | ||
27 | values | ||
28 | <foreach collection ="list" item="obj" separator =","> | ||
29 | <trim prefix=" (" suffix=")" suffixOverrides=","> | ||
30 | #{obj.id}, | ||
31 | #{obj.billNo}, | ||
32 | #{obj.rowNo}, | ||
33 | #{obj.goodsCode}, | ||
34 | #{obj.goodsName}, | ||
35 | #{obj.goodsSpec}, | ||
36 | #{obj.manufacturer}, | ||
37 | #{obj.poQty}, | ||
38 | #{obj.unit}, | ||
39 | #{obj.taxprice}, | ||
40 | #{obj.taxsum} | ||
41 | </trim> | ||
42 | </foreach> | ||
43 | </insert> | ||
44 | |||
45 | |||
46 | </mapper> | ||
... | \ No newline at end of file | ... | \ No newline at end of file |
1 | package com.phxl.modules.goods.service.supplygoods; | ||
2 | |||
3 | import java.math.BigDecimal; | ||
4 | import java.util.List; | ||
5 | |||
6 | import org.apache.commons.lang3.StringUtils; | ||
7 | import org.apache.commons.logging.Log; | ||
8 | import org.apache.commons.logging.LogFactory; | ||
9 | import org.apache.xmlbeans.impl.xb.xsdschema.Public; | ||
10 | import org.springframework.beans.factory.annotation.Autowired; | ||
11 | import org.springframework.stereotype.Service; | ||
12 | import org.springframework.transaction.annotation.Transactional; | ||
13 | |||
14 | import com.phxl.common.util.JsonMapper; | ||
15 | import com.phxl.common.utils.BaseException; | ||
16 | import com.phxl.common.utils.IdUtil; | ||
17 | import com.phxl.modules.goods.dao.supplygoods.MedSupplyGoodsDao; | ||
18 | import com.phxl.modules.goods.entity.supplygoods.MedSupplyGoods; | ||
19 | |||
20 | @Service | ||
21 | public class MedSupplyGoodsService{ | ||
22 | |||
23 | |||
24 | @Autowired | ||
25 | private MedSupplyGoodsDao medSupplyGoodsDao; | ||
26 | |||
27 | private static Log log = LogFactory.getLog(MedSupplyGoodsService.class); | ||
28 | |||
29 | |||
30 | @Transactional | ||
31 | public boolean batchSave(List<MedSupplyGoods> supplyGoods) { | ||
32 | boolean result = false; | ||
33 | if(supplyGoods != null && supplyGoods.size() != 0){ | ||
34 | for (MedSupplyGoods medSupplyGoods : supplyGoods) { | ||
35 | try { | ||
36 | checkGoods(medSupplyGoods); | ||
37 | } catch (Exception e) { | ||
38 | String json = JsonMapper.toJsonString(medSupplyGoods); | ||
39 | log.error("采购目录:"+json+"信息异常"); | ||
40 | throw new BaseException(e.getMessage()); | ||
41 | } | ||
42 | medSupplyGoods.setId(IdUtil.uuid()); | ||
43 | } | ||
44 | medSupplyGoodsDao.batchInsert(supplyGoods); | ||
45 | result = true; | ||
46 | } | ||
47 | return result; | ||
48 | } | ||
49 | |||
50 | /** | ||
51 | * 采购目录信息校验 | ||
52 | * @param medSupplyGoods | ||
53 | */ | ||
54 | private void checkGoods(MedSupplyGoods medSupplyGoods) { | ||
55 | //获取采购目录供应商信息 | ||
56 | String medSuppliercode = medSupplyGoods.getMedSuppliercode(); | ||
57 | String medSuppliername = medSupplyGoods.getMedSuppliername(); | ||
58 | if(StringUtils.isEmpty(medSuppliercode) || StringUtils.isEmpty(medSuppliername)){ | ||
59 | log.error("采购目录信息供应商编号以及供应商名称不能为空"); | ||
60 | throw new BaseException("采购目录信息供应商编号以及供应商名称不能为空"); | ||
61 | } | ||
62 | //获取采购目录商品信息 | ||
63 | String goodsCode = medSupplyGoods.getGoodsCode(); | ||
64 | String goodsName = medSupplyGoods.getGoodsName(); | ||
65 | if(StringUtils.isEmpty(goodsCode) || StringUtils.isEmpty(goodsName)){ | ||
66 | log.error("采购目录信息商品编号以及商品名称不能为空"); | ||
67 | throw new BaseException("采购目录信息商品编号以及商品名称不能为空"); | ||
68 | } | ||
69 | //对应商品规格 | ||
70 | String goodsSpec = medSupplyGoods.getGoodsSpec(); | ||
71 | if(StringUtils.isEmpty(goodsSpec)){ | ||
72 | log.error("采购目录信息商品规格以及商品名称不能为空"); | ||
73 | throw new BaseException("采购目录信息商品规格以及商品名称不能为空"); | ||
74 | } | ||
75 | BigDecimal price = medSupplyGoods.getPrice(); | ||
76 | if (price == null) { | ||
77 | log.error("采购目录信息采购价不能为空"); | ||
78 | throw new BaseException("采购目录信息采购价不能为空"); | ||
79 | } | ||
80 | } | ||
81 | |||
82 | |||
83 | } |
1 | package com.phxl.modules.goods.service.ctcareprov; | ||
2 | |||
3 | import org.apache.commons.collections.CollectionUtils; | ||
4 | import org.apache.commons.lang3.StringUtils; | ||
5 | import org.slf4j.Logger; | ||
6 | import org.slf4j.LoggerFactory; | ||
7 | import org.springframework.beans.factory.annotation.Autowired; | ||
8 | import org.springframework.stereotype.Service; | ||
9 | |||
10 | import com.phxl.common.utils.BaseException; | ||
11 | import com.phxl.common.utils.IdUtil; | ||
12 | import com.phxl.modules.goods.dao.ctcareprov.CTCareProvDao; | ||
13 | import com.phxl.modules.goods.entity.ctcareprov.CTCareProv; | ||
14 | |||
15 | import java.util.*; | ||
16 | |||
17 | @Service | ||
18 | public class CTCareProvService{ | ||
19 | |||
20 | @Autowired | ||
21 | private CTCareProvDao cTCareProvDao; | ||
22 | |||
23 | /** | ||
24 | * 日志对象 | ||
25 | */ | ||
26 | protected Logger logger = LoggerFactory.getLogger(getClass()); | ||
27 | |||
28 | public boolean batchSaveOrUpdate(List<CTCareProv> careProvs) { | ||
29 | boolean success = false; | ||
30 | try { | ||
31 | checkCTCareProv(careProvs); | ||
32 | } catch (Exception e) { | ||
33 | throw new BaseException(e.getMessage()); | ||
34 | } | ||
35 | if (CollectionUtils.isNotEmpty(careProvs)) { | ||
36 | List<String> codes = new ArrayList<String>(); | ||
37 | for (CTCareProv ctCareProv : careProvs) { | ||
38 | String ryCode = ctCareProv.getMfmedStaffCode(); | ||
39 | codes.add(ryCode); | ||
40 | } | ||
41 | Map<String,Object> map = new HashMap<String, Object>(); | ||
42 | map.put("ryCodes",codes); | ||
43 | List<CTCareProv> exsitList = cTCareProvDao.batchSelect(map); | ||
44 | List<CTCareProv> insertList = new ArrayList<CTCareProv>(); | ||
45 | List<CTCareProv> updateList = new ArrayList<CTCareProv>(); | ||
46 | for (CTCareProv ctCareProv : careProvs) { | ||
47 | boolean flag = false; | ||
48 | for (CTCareProv exsitCtCareProv : exsitList) { | ||
49 | if (ctCareProv.getMfmedStaffCode().equals(exsitCtCareProv.getMfmedStaffCode())) { | ||
50 | ctCareProv.setId(exsitCtCareProv.getId()); | ||
51 | flag = true; | ||
52 | } | ||
53 | } | ||
54 | if (!flag) { | ||
55 | ctCareProv.setId(IdUtil.uuid()); | ||
56 | insertList.add(ctCareProv); | ||
57 | }else{ | ||
58 | updateList.add(ctCareProv); | ||
59 | } | ||
60 | } | ||
61 | if(CollectionUtils.isNotEmpty(updateList)){ | ||
62 | cTCareProvDao.batchUpdate(updateList); | ||
63 | } | ||
64 | if(CollectionUtils.isNotEmpty(insertList)){ | ||
65 | cTCareProvDao.batchInsert(insertList); | ||
66 | } | ||
67 | success = true; | ||
68 | } | ||
69 | return success; | ||
70 | } | ||
71 | |||
72 | private void checkCTCareProv(List<CTCareProv> careProvs) { | ||
73 | if(careProvs == null || careProvs.size() == 0){ | ||
74 | logger.error("无相应人员资料信息"); | ||
75 | throw new BaseException("无相应人员资料信息"); | ||
76 | } | ||
77 | for (CTCareProv ctCareProv : careProvs) { | ||
78 | String mfmedStaffCode = ctCareProv.getMfmedStaffCode(); | ||
79 | if (StringUtils.isEmpty(mfmedStaffCode)) { | ||
80 | logger.error("人员资料人员代码不能为空"); | ||
81 | throw new BaseException("人员资料人员代码不能为空"); | ||
82 | } | ||
83 | String logonUser = ctCareProv.getLogonUser(); | ||
84 | if (StringUtils.isEmpty(logonUser)) { | ||
85 | logger.error("人员资料登陆账号不能为空"); | ||
86 | throw new BaseException("人员资料登陆账号不能为空"); | ||
87 | } | ||
88 | String realName = ctCareProv.getRealName(); | ||
89 | if (StringUtils.isEmpty(realName)) { | ||
90 | logger.error("人员资料真实账号不能为空"); | ||
91 | throw new BaseException("人员资料真实账号不能为空"); | ||
92 | } | ||
93 | } | ||
94 | } | ||
95 | |||
96 | |||
97 | |||
98 | } |
1 | <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> | ||
2 | <html lang="en"> | ||
3 | <head> | ||
4 | <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> | ||
5 | <meta content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no" name="viewport" /> | ||
6 | <title>微信绑定页面</title> | ||
7 | </head> | ||
8 | <body> | ||
9 | <div style="width: 240px;"> | ||
10 | <div style="height: 240px;width: 240px;"> | ||
11 | ${qrImage} | ||
12 | </div> | ||
13 | </div> | ||
14 | |||
15 | </body> | ||
16 | </html> | ||
... | \ No newline at end of file | ... | \ No newline at end of file |
1 | <?xml version="1.0" encoding="UTF-8" ?> | ||
2 | <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" > | ||
3 | <mapper namespace="com.phxl.modules.goods.dao.suoutstore.SuOutStoreDao"> | ||
4 | |||
5 | <!--BaseResultMap --> | ||
6 | <resultMap id="BaseResultMap" | ||
7 | type="com.phxl.modules.goods.entity.suoutstore.SuOutStore"> | ||
8 | <id column="id" property="id" jdbcType="BIGINT" /> | ||
9 | <result column="bill_no" property="billNo" jdbcType="VARCHAR" /> | ||
10 | <result column="med_guid" property="medGuid" jdbcType="VARCHAR" /> | ||
11 | <result column="med_name" property="medName" jdbcType="VARCHAR" /> | ||
12 | <result column="med_dept_guid" property="medDeptGuid" jdbcType="VARCHAR" /> | ||
13 | <result column="med_dept_name" property="medDeptName" jdbcType="VARCHAR" /> | ||
14 | <result column="med_store_guid" property="medStoreGuid" jdbcType="VARCHAR" /> | ||
15 | <result column="med_store_name" property="medStoreName" jdbcType="VARCHAR" /> | ||
16 | <result column="supplier_guid" property="supplierGuid" jdbcType="VARCHAR" /> | ||
17 | <result column="supplier_name" property="supplierName" jdbcType="VARCHAR" /> | ||
18 | <result column="bill_date" property="billDate" jdbcType="TIMESTAMP" /> | ||
19 | <result column="count_sum" property="countSum" jdbcType="TINYINT" /> | ||
20 | <result column="detail_sum" property="detailSum" jdbcType="DECIMAL" /> | ||
21 | <result column="operater_name" property="operaterName" jdbcType="VARCHAR" /> | ||
22 | <result column="input_date" property="inputDate" jdbcType="TIMESTAMP" /> | ||
23 | <result column="memo" property="memo" jdbcType="VARCHAR" /> | ||
24 | <result column="create_time" property="createTime" jdbcType="TIMESTAMP" /> | ||
25 | <result column="update_time" property="updateTime" jdbcType="TIMESTAMP" /> | ||
26 | </resultMap> | ||
27 | |||
28 | <!--Base_Column_List --> | ||
29 | <sql id="Base_Column_List">id,bill_no,med_guid,med_name,med_dept_guid,med_dept_name,med_store_guid,med_store_name,supplier_guid,supplier_name,bill_date,count_sum,detail_sum,operater_name,input_date,memo,create_time,update_time</sql> | ||
30 | |||
31 | <!-- 新增MedPlan--> | ||
32 | <insert id="insert" parameterType="com.phxl.modules.goods.entity.suoutstore.SuOutStore"> | ||
33 | insert into med_supplier_out_store (id,bill_no,med_guid,med_name,med_dept_guid,med_dept_name,med_store_guid,med_store_name,supplier_guid,supplier_name,bill_date,count_sum,detail_sum,operater_name,input_date,memo,create_time,update_time) | ||
34 | values ( | ||
35 | #{id,jdbcType=VARCHAR} | ||
36 | ,#{billNo,jdbcType=VARCHAR} | ||
37 | ,#{medGuid,jdbcType=VARCHAR} | ||
38 | ,#{medName,jdbcType=VARCHAR} | ||
39 | ,#{medDeptGuid,jdbcType=VARCHAR} | ||
40 | ,#{medDeptName,jdbcType=VARCHAR} | ||
41 | ,#{medStoreGuid,jdbcType=VARCHAR} | ||
42 | ,#{medStoreName,jdbcType=VARCHAR} | ||
43 | ,#{supplierGuid,jdbcType=VARCHAR} | ||
44 | ,#{supplierName,jdbcType=VARCHAR} | ||
45 | ,#{billDate,jdbcType=TIMESTAMP} | ||
46 | ,#{countSum,jdbcType=TINYINT} | ||
47 | ,#{detailSum,jdbcType=DECIMAL} | ||
48 | ,#{operaterName,jdbcType=VARCHAR} | ||
49 | ,#{inputDate,jdbcType=TIMESTAMP} | ||
50 | ,#{memo,jdbcType=VARCHAR} | ||
51 | ,#{createTime,jdbcType=TIMESTAMP} | ||
52 | ,#{updateTime,jdbcType=TIMESTAMP} | ||
53 | ) | ||
54 | </insert> | ||
55 | |||
56 | </mapper> | ||
... | \ No newline at end of file | ... | \ No newline at end of file |
1 | <?xml version="1.0" encoding="UTF-8"?> | ||
2 | <classpath> | ||
3 | <classpathentry including="**/*.java" kind="src" output="target/classes" path="src/main/java"> | ||
4 | <attributes> | ||
5 | <attribute name="optional" value="true"/> | ||
6 | <attribute name="maven.pomderived" value="true"/> | ||
7 | </attributes> | ||
8 | </classpathentry> | ||
9 | <classpathentry excluding="**" kind="src" output="target/classes" path="src/main/resources"> | ||
10 | <attributes> | ||
11 | <attribute name="maven.pomderived" value="true"/> | ||
12 | </attributes> | ||
13 | </classpathentry> | ||
14 | <classpathentry kind="src" output="target/test-classes" path="src/test/java"> | ||
15 | <attributes> | ||
16 | <attribute name="optional" value="true"/> | ||
17 | <attribute name="maven.pomderived" value="true"/> | ||
18 | </attributes> | ||
19 | </classpathentry> | ||
20 | <classpathentry kind="con" path="org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER"> | ||
21 | <attributes> | ||
22 | <attribute name="maven.pomderived" value="true"/> | ||
23 | <attribute name="org.eclipse.jst.component.dependency" value="/WEB-INF/lib"/> | ||
24 | </attributes> | ||
25 | </classpathentry> | ||
26 | <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.6"> | ||
27 | <attributes> | ||
28 | <attribute name="maven.pomderived" value="true"/> | ||
29 | </attributes> | ||
30 | </classpathentry> | ||
31 | <classpathentry kind="output" path="target/classes"/> | ||
32 | </classpath> |
1 | package com.phxl.modules.goods.dao.hisCtMedicineMaterial; | ||
2 | |||
3 | import java.util.List; | ||
4 | |||
5 | import com.phxl.modules.goods.entity.hisCtMedicineMaterial.HisCtMedicineMaterial; | ||
6 | |||
7 | /** | ||
8 | * | ||
9 | * @ClassName: HisCtMedicineMaterialDao | ||
10 | * @Description: HisCtMedicineMaterial数据访问接口 | ||
11 | * @author hehaihong | ||
12 | * @date 2018-08-06 14:44:26 | ||
13 | * | ||
14 | */ | ||
15 | public interface HisCtMedicineMaterialDao { | ||
16 | |||
17 | |||
18 | List<HisCtMedicineMaterial> findLists(HisCtMedicineMaterial material); | ||
19 | |||
20 | HisCtMedicineMaterial getMedicine(HisCtMedicineMaterial material); | ||
21 | |||
22 | HisCtMedicineMaterial get(HisCtMedicineMaterial materials); | ||
23 | |||
24 | void update(HisCtMedicineMaterial materials); | ||
25 | |||
26 | void insert(HisCtMedicineMaterial materials); | ||
27 | |||
28 | } | ||
... | \ No newline at end of file | ... | \ No newline at end of file |
1 | package com.phxl.modules.goods.entity.suoutstore; | ||
2 | |||
3 | import java.math.BigDecimal; | ||
4 | import java.util.Date; | ||
5 | import java.util.List; | ||
6 | |||
7 | import com.fasterxml.jackson.annotation.JsonFormat; | ||
8 | |||
9 | /** | ||
10 | * 供应商出库单信息 | ||
11 | */ | ||
12 | |||
13 | public class SuOutStore{ | ||
14 | |||
15 | private String billNo; //单据编号 | ||
16 | private String medGuid; //医疗机构代码 | ||
17 | private String medName; //医疗机构名称 | ||
18 | private String medDeptGuid; //订货科室编码 | ||
19 | private String medDeptName; //订货科室名称 | ||
20 | private String medStoreGuid; //订货库房编码 | ||
21 | private String medStoreName; //订货库房名称 | ||
22 | private String supplierGuid; //供应商编码 | ||
23 | private String supplierName; //供应商名称 | ||
24 | private Date billDate; //出库日期 | ||
25 | private int countSum; //明细条数 | ||
26 | private BigDecimal detailSum; //明细金额 | ||
27 | private String operaterName; //出库人员姓名 | ||
28 | private Date inputDate; //制单日期 | ||
29 | private String memo; //备注 | ||
30 | @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") | ||
31 | private Date createTime; //创建时间 | ||
32 | @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") | ||
33 | private Date updateTime; //更新时间 | ||
34 | |||
35 | |||
36 | private List<SuOutStoreDetail> billdetaillist; //出库单明细 | ||
37 | |||
38 | private String id; | ||
39 | |||
40 | public String getBillNo() { | ||
41 | return billNo; | ||
42 | } | ||
43 | |||
44 | public void setBillNo(String billNo) { | ||
45 | this.billNo = billNo; | ||
46 | } | ||
47 | |||
48 | public String getMedGuid() { | ||
49 | return medGuid; | ||
50 | } | ||
51 | |||
52 | public void setMedGuid(String medGuid) { | ||
53 | this.medGuid = medGuid; | ||
54 | } | ||
55 | |||
56 | public String getMedName() { | ||
57 | return medName; | ||
58 | } | ||
59 | |||
60 | public void setMedName(String medName) { | ||
61 | this.medName = medName; | ||
62 | } | ||
63 | |||
64 | public String getMedDeptGuid() { | ||
65 | return medDeptGuid; | ||
66 | } | ||
67 | |||
68 | public void setMedDeptGuid(String medDeptGuid) { | ||
69 | this.medDeptGuid = medDeptGuid; | ||
70 | } | ||
71 | |||
72 | public String getMedDeptName() { | ||
73 | return medDeptName; | ||
74 | } | ||
75 | |||
76 | public void setMedDeptName(String medDeptName) { | ||
77 | this.medDeptName = medDeptName; | ||
78 | } | ||
79 | |||
80 | public String getMedStoreGuid() { | ||
81 | return medStoreGuid; | ||
82 | } | ||
83 | |||
84 | public void setMedStoreGuid(String medStoreGuid) { | ||
85 | this.medStoreGuid = medStoreGuid; | ||
86 | } | ||
87 | |||
88 | public String getMedStoreName() { | ||
89 | return medStoreName; | ||
90 | } | ||
91 | |||
92 | public void setMedStoreName(String medStoreName) { | ||
93 | this.medStoreName = medStoreName; | ||
94 | } | ||
95 | |||
96 | public String getSupplierGuid() { | ||
97 | return supplierGuid; | ||
98 | } | ||
99 | |||
100 | public void setSupplierGuid(String supplierGuid) { | ||
101 | this.supplierGuid = supplierGuid; | ||
102 | } | ||
103 | |||
104 | public String getSupplierName() { | ||
105 | return supplierName; | ||
106 | } | ||
107 | |||
108 | public void setSupplierName(String supplierName) { | ||
109 | this.supplierName = supplierName; | ||
110 | } | ||
111 | |||
112 | public Date getBillDate() { | ||
113 | return billDate; | ||
114 | } | ||
115 | |||
116 | public void setBillDate(Date billDate) { | ||
117 | this.billDate = billDate; | ||
118 | } | ||
119 | |||
120 | public int getCountSum() { | ||
121 | return countSum; | ||
122 | } | ||
123 | |||
124 | public void setCountSum(int countSum) { | ||
125 | this.countSum = countSum; | ||
126 | } | ||
127 | |||
128 | public BigDecimal getDetailSum() { | ||
129 | return detailSum; | ||
130 | } | ||
131 | |||
132 | public void setDetailSum(BigDecimal detailSum) { | ||
133 | this.detailSum = detailSum; | ||
134 | } | ||
135 | |||
136 | public String getOperaterName() { | ||
137 | return operaterName; | ||
138 | } | ||
139 | |||
140 | public void setOperaterName(String operaterName) { | ||
141 | this.operaterName = operaterName; | ||
142 | } | ||
143 | |||
144 | public Date getInputDate() { | ||
145 | return inputDate; | ||
146 | } | ||
147 | |||
148 | public void setInputDate(Date inputDate) { | ||
149 | this.inputDate = inputDate; | ||
150 | } | ||
151 | |||
152 | public String getMemo() { | ||
153 | return memo; | ||
154 | } | ||
155 | |||
156 | public void setMemo(String memo) { | ||
157 | this.memo = memo; | ||
158 | } | ||
159 | |||
160 | public Date getCreateTime() { | ||
161 | return createTime; | ||
162 | } | ||
163 | |||
164 | public void setCreateTime(Date createTime) { | ||
165 | this.createTime = createTime; | ||
166 | } | ||
167 | |||
168 | public Date getUpdateTime() { | ||
169 | return updateTime; | ||
170 | } | ||
171 | |||
172 | public void setUpdateTime(Date updateTime) { | ||
173 | this.updateTime = updateTime; | ||
174 | } | ||
175 | |||
176 | public List<SuOutStoreDetail> getBilldetaillist() { | ||
177 | return billdetaillist; | ||
178 | } | ||
179 | |||
180 | public void setBilldetaillist(List<SuOutStoreDetail> billdetaillist) { | ||
181 | this.billdetaillist = billdetaillist; | ||
182 | } | ||
183 | |||
184 | public String getId() { | ||
185 | return id; | ||
186 | } | ||
187 | |||
188 | public void setId(String id) { | ||
189 | this.id = id; | ||
190 | } | ||
191 | |||
192 | |||
193 | } |
This diff is collapsed.
Click to expand it.
1 | package com.phxl.modules.goods.entity.billback; | ||
2 | |||
3 | import com.alibaba.fastjson.annotation.JSONField; | ||
4 | |||
5 | import java.math.BigDecimal; | ||
6 | import java.util.Date; | ||
7 | |||
8 | /** | ||
9 | * 医院退货单明细信息 | ||
10 | */ | ||
11 | |||
12 | public class BillBackDetail{ | ||
13 | |||
14 | @JSONField(name = "BillNo") | ||
15 | private String billNo; //单据编号 | ||
16 | |||
17 | @JSONField(name = "RowNo") | ||
18 | private int rowNo; //行号 | ||
19 | |||
20 | @JSONField(name = "MedMVBillNo") | ||
21 | private String medMVBillNo; //入库单据编号 | ||
22 | |||
23 | @JSONField(name = "MedMVRowNo") | ||
24 | private int medMVRowNo; //入库单据原行号 | ||
25 | |||
26 | @JSONField(name = "GoodsCode") | ||
27 | private String goodsCode; //商品编码 | ||
28 | |||
29 | @JSONField(name = "GoodsName") | ||
30 | private String goodsName; //商品名称 | ||
31 | |||
32 | @JSONField(name = "GoodsSpec") | ||
33 | private String goodsSpec; //商品规格 | ||
34 | |||
35 | @JSONField(name = "Returns_Unit") | ||
36 | private String returns_Unit; //包装单位 | ||
37 | |||
38 | @JSONField(name = "Returns_Price") | ||
39 | private BigDecimal returns_Price; //退货价格 | ||
40 | |||
41 | @JSONField(name = "Manufacturer") | ||
42 | private String manufacturer; //生产厂商 | ||
43 | |||
44 | @JSONField(name = "RpiQty") | ||
45 | private BigDecimal rpiQty; //退货数量 | ||
46 | |||
47 | @JSONField(name = "Amount") | ||
48 | private BigDecimal amount; //金额 | ||
49 | |||
50 | @JSONField(name = "Lot") | ||
51 | private String lot; //批号 | ||
52 | |||
53 | @JSONField(name = "ProductionDate") | ||
54 | private Date productionDate; //生产日期 | ||
55 | |||
56 | @JSONField(name = "ExpireDate") | ||
57 | private Date expireDate; //有效期至 | ||
58 | |||
59 | @JSONField(name = "Memo") | ||
60 | private String memo; //备注 | ||
61 | |||
62 | private String id; | ||
63 | |||
64 | public String getId() { | ||
65 | return id; | ||
66 | } | ||
67 | public void setId(String id) { | ||
68 | this.id = id; | ||
69 | } | ||
70 | |||
71 | public String getBillNo() { | ||
72 | return billNo; | ||
73 | } | ||
74 | public void setBillNo(String billNo) { | ||
75 | this.billNo = billNo; | ||
76 | } | ||
77 | public int getRowNo() { | ||
78 | return rowNo; | ||
79 | } | ||
80 | public void setRowNo(int rowNo) { | ||
81 | this.rowNo = rowNo; | ||
82 | } | ||
83 | public String getMedMVBillNo() { | ||
84 | return medMVBillNo; | ||
85 | } | ||
86 | public void setMedMVBillNo(String medMVBillNo) { | ||
87 | this.medMVBillNo = medMVBillNo; | ||
88 | } | ||
89 | public int getMedMVRowNo() { | ||
90 | return medMVRowNo; | ||
91 | } | ||
92 | public void setMedMVRowNo(int medMVRowNo) { | ||
93 | this.medMVRowNo = medMVRowNo; | ||
94 | } | ||
95 | public String getGoodsCode() { | ||
96 | return goodsCode; | ||
97 | } | ||
98 | public void setGoodsCode(String goodsCode) { | ||
99 | this.goodsCode = goodsCode; | ||
100 | } | ||
101 | public String getGoodsName() { | ||
102 | return goodsName; | ||
103 | } | ||
104 | public void setGoodsName(String goodsName) { | ||
105 | this.goodsName = goodsName; | ||
106 | } | ||
107 | public String getGoodsSpec() { | ||
108 | return goodsSpec; | ||
109 | } | ||
110 | public void setGoodsSpec(String goodsSpec) { | ||
111 | this.goodsSpec = goodsSpec; | ||
112 | } | ||
113 | public String getReturns_Unit() { | ||
114 | return returns_Unit; | ||
115 | } | ||
116 | public void setReturns_Unit(String returns_Unit) { | ||
117 | this.returns_Unit = returns_Unit; | ||
118 | } | ||
119 | public BigDecimal getReturns_Price() { | ||
120 | return returns_Price; | ||
121 | } | ||
122 | public void setReturns_Price(BigDecimal returns_Price) { | ||
123 | this.returns_Price = returns_Price; | ||
124 | } | ||
125 | public String getManufacturer() { | ||
126 | return manufacturer; | ||
127 | } | ||
128 | public void setManufacturer(String manufacturer) { | ||
129 | this.manufacturer = manufacturer; | ||
130 | } | ||
131 | public BigDecimal getRpiQty() { | ||
132 | return rpiQty; | ||
133 | } | ||
134 | public void setRpiQty(BigDecimal rpiQty) { | ||
135 | this.rpiQty = rpiQty; | ||
136 | } | ||
137 | public BigDecimal getAmount() { | ||
138 | return amount; | ||
139 | } | ||
140 | public void setAmount(BigDecimal amount) { | ||
141 | this.amount = amount; | ||
142 | } | ||
143 | public String getLot() { | ||
144 | return lot; | ||
145 | } | ||
146 | public void setLot(String lot) { | ||
147 | this.lot = lot; | ||
148 | } | ||
149 | public Date getProductionDate() { | ||
150 | return productionDate; | ||
151 | } | ||
152 | public void setProductionDate(Date productionDate) { | ||
153 | this.productionDate = productionDate; | ||
154 | } | ||
155 | public Date getExpireDate() { | ||
156 | return expireDate; | ||
157 | } | ||
158 | public void setExpireDate(Date expireDate) { | ||
159 | this.expireDate = expireDate; | ||
160 | } | ||
161 | public String getMemo() { | ||
162 | return memo; | ||
163 | } | ||
164 | public void setMemo(String memo) { | ||
165 | this.memo = memo; | ||
166 | } | ||
167 | |||
168 | } |
1 | package com.phxl.modules.goods.service.hisCtMedicineMaterial; | ||
2 | |||
3 | import org.apache.commons.lang3.StringUtils; | ||
4 | import org.slf4j.Logger; | ||
5 | import org.slf4j.LoggerFactory; | ||
6 | import org.springframework.beans.factory.annotation.Autowired; | ||
7 | import org.springframework.stereotype.Service; | ||
8 | import org.springframework.transaction.annotation.Transactional; | ||
9 | |||
10 | import com.phxl.common.utils.BaseException; | ||
11 | import com.phxl.common.utils.IdUtil; | ||
12 | import com.phxl.modules.goods.dao.hisCtMedicineMaterial.HisCtMedicineMaterialDao; | ||
13 | import com.phxl.modules.goods.entity.hisCtMedicineMaterial.HisCtMedicineMaterial; | ||
14 | |||
15 | |||
16 | @Service | ||
17 | public class HisCtMedicineMaterialService{ | ||
18 | |||
19 | @Autowired | ||
20 | private HisCtMedicineMaterialDao hisCtMedicineMaterialDao; | ||
21 | |||
22 | /** | ||
23 | * 日志对象 | ||
24 | */ | ||
25 | protected Logger logger = LoggerFactory.getLogger(getClass()); | ||
26 | |||
27 | |||
28 | /** | ||
29 | * 同步药品目录信息 | ||
30 | */ | ||
31 | @Transactional | ||
32 | public String saveMedicine(HisCtMedicineMaterial materials) { | ||
33 | try { | ||
34 | checkMaterial(materials); | ||
35 | if(hisCtMedicineMaterialDao.get(materials)!=null){ | ||
36 | hisCtMedicineMaterialDao.update(materials); | ||
37 | }else{ | ||
38 | materials.setId(IdUtil.uuid()); | ||
39 | hisCtMedicineMaterialDao.insert(materials); | ||
40 | } | ||
41 | } catch (Exception e) { | ||
42 | logger.error(e.getMessage()); | ||
43 | throw new BaseException(e.getMessage()); | ||
44 | } | ||
45 | return "1"; | ||
46 | } | ||
47 | |||
48 | |||
49 | private void checkMaterial(HisCtMedicineMaterial materials) { | ||
50 | String medCode = materials.getMedCode(); | ||
51 | String medName = materials.getMedName(); | ||
52 | if (StringUtils.isEmpty(medCode) || StringUtils.isEmpty(medName)) { | ||
53 | logger.error("前置机:药品目录医疗机构编码以及医疗机构名称不能为空"); | ||
54 | throw new BaseException("前置机:药品目录医疗机构编码以及医疗机构名称不能为空"); | ||
55 | } | ||
56 | String goodsCode = materials.getGoodsCode(); | ||
57 | String goodsName = materials.getGoodsName(); | ||
58 | if (StringUtils.isEmpty(goodsCode) || StringUtils.isEmpty(goodsName)) { | ||
59 | logger.error("前置机:药品目录商品编码以及商品名称不能为空"); | ||
60 | throw new BaseException("前置机:药品目录商品编码以及商品名称不能为空"); | ||
61 | } | ||
62 | String goodsSpec = materials.getGoodsSpec(); | ||
63 | if (StringUtils.isEmpty(goodsSpec)) { | ||
64 | logger.error("前置机:药品目录商品规格不能为空"); | ||
65 | throw new BaseException("前置机:药品目录商品规格不能为空"); | ||
66 | } | ||
67 | } | ||
68 | |||
69 | |||
70 | public String createRequest() { | ||
71 | |||
72 | return null; | ||
73 | |||
74 | } | ||
75 | |||
76 | |||
77 | } |
1 | package com.phxl.common.constants; | ||
2 | |||
3 | public class HisResponseConstant { | ||
4 | |||
5 | public static class ResponseBodyMsg{ | ||
6 | public static final String success_ResultCode = "001"; | ||
7 | public static final String getSuccess_ResultContent = "成功"; | ||
8 | } | ||
9 | |||
10 | public static class ResponseHeaderMsg{ | ||
11 | public static final String SUPPLYGOODS_MESSAGEID = "004"; | ||
12 | public static final String SUPPLYGOODS_SOURCESYSTEM = "医院采购目录"; | ||
13 | } | ||
14 | |||
15 | } |
1 | package com.phxl.common.response; | ||
2 | |||
3 | public class PlatFormResponseConstant { | ||
4 | |||
5 | public static class ResponseBodyMsg{ | ||
6 | |||
7 | public static final String success_ResultCode = "Y"; | ||
8 | public static final String fail_ResultCode = "E"; | ||
9 | |||
10 | public static final String getSuccess_ResultContent = "成功"; | ||
11 | public static final String getFail_ResultContent = "失败"; | ||
12 | |||
13 | } | ||
14 | |||
15 | public static class ResponseHeaderMsg{ | ||
16 | public static final String SUPPLYGOODS_MESSAGEID = "004"; | ||
17 | public static final String SUPPLYGOODS_SOURCESYSTEM = "医院采购目录"; | ||
18 | } | ||
19 | |||
20 | } |
1 | package com.phxl.common.util; | ||
2 | |||
3 | import com.thoughtworks.xstream.XStream; | ||
4 | |||
5 | public class XMLUtil { | ||
6 | private static final XStream xStream = new XStream(); | ||
7 | |||
8 | // 将对象转为XML字符串 | ||
9 | public static <T> String toXML(T obj) { | ||
10 | Class<?> cls = obj.getClass(); | ||
11 | xStream.alias(cls.getSimpleName().toLowerCase(), cls); | ||
12 | xStream.aliasSystemAttribute(null, "class"); | ||
13 | return xStream.toXML(obj); | ||
14 | } | ||
15 | |||
16 | // 将XML字符串转为对象 | ||
17 | @SuppressWarnings({"unchecked"}) | ||
18 | public static <T> T fromXML(String xml) { | ||
19 | return (T) xStream.fromXML(xml); | ||
20 | } | ||
21 | } |
1 | package com.phxl.modules.goods.entity.invoiceback; | ||
2 | |||
3 | import java.math.BigDecimal; | ||
4 | import java.util.Date; | ||
5 | import java.util.List; | ||
6 | |||
7 | import com.alibaba.fastjson.annotation.JSONField; | ||
8 | |||
9 | public class SuInvoiceBack{ | ||
10 | @JSONField(name = "SettleBillNo") | ||
11 | private String settleBillNo; //结算单号 | ||
12 | @JSONField(name = "SettleDate") | ||
13 | private Date settleDate; //结算单日期 | ||
14 | @JSONField(name = "MedCode") | ||
15 | private String medCode; //医疗机构编码 | ||
16 | @JSONField(name = "MedName") | ||
17 | private String medName; //医疗机构名称 | ||
18 | @JSONField(name = "SupplierCode") | ||
19 | private String supplierCode; //供应商编码 | ||
20 | @JSONField(name = "SupplierName") | ||
21 | private String supplierName; //供应商名称 | ||
22 | @JSONField(name = "GoodsSum") | ||
23 | private int goodsSum; //商品条目/品规数 | ||
24 | @JSONField(name = "Amount") | ||
25 | private BigDecimal amount; //结算金额 | ||
26 | @JSONField(name = "BeginDate") | ||
27 | private Date beginDate; //业务开始日期 | ||
28 | @JSONField(name = "EndDate") | ||
29 | private Date endDate; //业务结束日期 | ||
30 | @JSONField(name = "CREATE_TIME") | ||
31 | private Date create_time; //创建时间 | ||
32 | @JSONField(name = "UPDATE_TIME") | ||
33 | private Date update_time; //更新时间 | ||
34 | |||
35 | |||
36 | public Date getCreate_time() { | ||
37 | return create_time; | ||
38 | } | ||
39 | |||
40 | public void setCreate_time(Date create_time) { | ||
41 | this.create_time = create_time; | ||
42 | } | ||
43 | |||
44 | public Date getUpdate_time() { | ||
45 | return update_time; | ||
46 | } | ||
47 | |||
48 | public void setUpdate_time(Date update_time) { | ||
49 | this.update_time = update_time; | ||
50 | } | ||
51 | |||
52 | private List<SuInvoiceBackDetail> billdetaillist; //回传发票明细 | ||
53 | |||
54 | private String id; | ||
55 | |||
56 | public String getSettleBillNo() { | ||
57 | return settleBillNo; | ||
58 | } | ||
59 | |||
60 | public void setSettleBillNo(String settleBillNo) { | ||
61 | this.settleBillNo = settleBillNo; | ||
62 | } | ||
63 | |||
64 | public Date getSettleDate() { | ||
65 | return settleDate; | ||
66 | } | ||
67 | |||
68 | public void setSettleDate(Date settleDate) { | ||
69 | this.settleDate = settleDate; | ||
70 | } | ||
71 | |||
72 | public String getMedCode() { | ||
73 | return medCode; | ||
74 | } | ||
75 | |||
76 | public void setMedCode(String medCode) { | ||
77 | this.medCode = medCode; | ||
78 | } | ||
79 | |||
80 | public String getMedName() { | ||
81 | return medName; | ||
82 | } | ||
83 | |||
84 | public void setMedName(String medName) { | ||
85 | this.medName = medName; | ||
86 | } | ||
87 | |||
88 | public String getSupplierCode() { | ||
89 | return supplierCode; | ||
90 | } | ||
91 | |||
92 | public void setSupplierCode(String supplierCode) { | ||
93 | this.supplierCode = supplierCode; | ||
94 | } | ||
95 | |||
96 | public String getSupplierName() { | ||
97 | return supplierName; | ||
98 | } | ||
99 | |||
100 | public void setSupplierName(String supplierName) { | ||
101 | this.supplierName = supplierName; | ||
102 | } | ||
103 | |||
104 | public int getGoodsSum() { | ||
105 | return goodsSum; | ||
106 | } | ||
107 | |||
108 | public void setGoodsSum(int goodsSum) { | ||
109 | this.goodsSum = goodsSum; | ||
110 | } | ||
111 | |||
112 | public BigDecimal getAmount() { | ||
113 | return amount; | ||
114 | } | ||
115 | |||
116 | public void setAmount(BigDecimal amount) { | ||
117 | this.amount = amount; | ||
118 | } | ||
119 | |||
120 | public Date getBeginDate() { | ||
121 | return beginDate; | ||
122 | } | ||
123 | |||
124 | public void setBeginDate(Date beginDate) { | ||
125 | this.beginDate = beginDate; | ||
126 | } | ||
127 | |||
128 | public Date getEndDate() { | ||
129 | return endDate; | ||
130 | } | ||
131 | |||
132 | public void setEndDate(Date endDate) { | ||
133 | this.endDate = endDate; | ||
134 | } | ||
135 | |||
136 | public String getId() { | ||
137 | return id; | ||
138 | } | ||
139 | |||
140 | public void setId(String id) { | ||
141 | this.id = id; | ||
142 | } | ||
143 | |||
144 | public List<SuInvoiceBackDetail> getBilldetaillist() { | ||
145 | return billdetaillist; | ||
146 | } | ||
147 | |||
148 | public void setBilldetaillist(List<SuInvoiceBackDetail> billdetaillist) { | ||
149 | this.billdetaillist = billdetaillist; | ||
150 | } | ||
151 | |||
152 | |||
153 | } |
1 | <?xml version="1.0" encoding="UTF-8" ?> | ||
2 | <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" > | ||
3 | <mapper namespace="com.phxl.modules.goods.dao.billback.BillBackDao"> | ||
4 | |||
5 | <!--BaseResultMap --> | ||
6 | <resultMap id="BaseResultMap" | ||
7 | type="com.phxl.modules.goods.entity.billback.BillBack"> | ||
8 | <id column="id" property="id" jdbcType="BIGINT" /> | ||
9 | <result column="bill_no" property="billNo" jdbcType="VARCHAR" /> | ||
10 | <result column="medMV_bill_no" property="medMVBillNo" jdbcType="VARCHAR" /> | ||
11 | <result column="supplier_code" property="supplierCode" jdbcType="VARCHAR" /> | ||
12 | <result column="supplierb_name" property="supplierbName" jdbcType="VARCHAR" /> | ||
13 | <result column="med_code" property="medCode" jdbcType="VARCHAR" /> | ||
14 | <result column="med_name" property="medName" jdbcType="VARCHAR" /> | ||
15 | <result column="bill_date" property="billDate" jdbcType="TIMESTAMP" /> | ||
16 | <result column="reason" property="reason" jdbcType="VARCHAR" /> | ||
17 | <result column="count_sum" property="countSum" jdbcType="TINYINT" /> | ||
18 | <result column="detail_sum" property="detailSum" jdbcType="DECIMAL" /> | ||
19 | <result column="operater_name" property="operaterName" jdbcType="VARCHAR" /> | ||
20 | <result column="input_date" property="inputDate" jdbcType="TIMESTAMP" /> | ||
21 | <result column="memo" property="memo" jdbcType="VARCHAR" /> | ||
22 | <result column="create_time" property="create_time" jdbcType="TIMESTAMP" /> | ||
23 | <result column="update_time" property="update_time" jdbcType="TIMESTAMP" /> | ||
24 | </resultMap> | ||
25 | |||
26 | <!--Base_Column_List --> | ||
27 | <sql id="Base_Column_List">id,bill_no,medMV_bill_no,supplier_code,supplierb_name,med_code,med_name,bill_date,reason,count_sum,detail_sum,operater_name,input_date,memo,create_time,update_time</sql> | ||
28 | |||
29 | |||
30 | <!-- 新增BillBack--> | ||
31 | <insert id="insert" parameterType="com.phxl.modules.goods.entity.billback.BillBack"> | ||
32 | insert into med_bill_back (id,bill_no,medMV_bill_no,supplier_code,supplierb_name,med_code,med_name,bill_date,reason,count_sum,detail_sum,operater_name,input_date,memo,create_time,update_time) | ||
33 | values ( | ||
34 | #{id,jdbcType=VARCHAR} | ||
35 | ,#{billNo,jdbcType=VARCHAR} | ||
36 | ,#{medMVBillNo,jdbcType=VARCHAR} | ||
37 | ,#{supplierCode,jdbcType=VARCHAR} | ||
38 | ,#{supplierbName,jdbcType=VARCHAR} | ||
39 | ,#{medCode,jdbcType=VARCHAR} | ||
40 | ,#{medName,jdbcType=VARCHAR} | ||
41 | ,#{billDate,jdbcType=TIMESTAMP} | ||
42 | ,#{reason,jdbcType=VARCHAR} | ||
43 | ,#{countSum,jdbcType=TINYINT} | ||
44 | ,#{detailSum,jdbcType=DECIMAL} | ||
45 | ,#{operaterName,jdbcType=VARCHAR} | ||
46 | ,#{inputDate,jdbcType=TIMESTAMP} | ||
47 | ,#{memo,jdbcType=VARCHAR} | ||
48 | ,#{create_time,jdbcType=TIMESTAMP} | ||
49 | ,#{update_time,jdbcType=TIMESTAMP} | ||
50 | ) | ||
51 | </insert> | ||
52 | |||
53 | </mapper> | ||
... | \ No newline at end of file | ... | \ No newline at end of file |
1 | Window | ||
... | \ No newline at end of file | ... | \ No newline at end of file |
1 | package com.phxl.modules.goods.dao.interfaceLog; | ||
2 | |||
3 | import com.phxl.modules.goods.entity.interfaceLog.InterfaceLog; | ||
4 | |||
5 | /** | ||
6 | * 接口日志DAO接口 | ||
7 | * @author zhangbing | ||
8 | * @version 2018-08-20 | ||
9 | */ | ||
10 | |||
11 | public interface InterfaceLogDao{ | ||
12 | |||
13 | void insert(InterfaceLog interfaceLog); | ||
14 | |||
15 | void update(InterfaceLog interfaceLog); | ||
16 | |||
17 | |||
18 | } |
1 | package com.phxl.modules.goods.entity.medinstore; | ||
2 | |||
3 | import java.math.BigDecimal; | ||
4 | import java.util.Date; | ||
5 | |||
6 | public class MedInStoreDetail { | ||
7 | public String getBillNo() { | ||
8 | return billNo; | ||
9 | } | ||
10 | public void setBillNo(String billNo) { | ||
11 | this.billNo = billNo; | ||
12 | } | ||
13 | public String getRowNo() { | ||
14 | return rowNo; | ||
15 | } | ||
16 | public void setRowNo(String rowNo) { | ||
17 | this.rowNo = rowNo; | ||
18 | } | ||
19 | public String getMedPlanRowNo() { | ||
20 | return medPlanRowNo; | ||
21 | } | ||
22 | public void setMedPlanRowNo(String medPlanRowNo) { | ||
23 | this.medPlanRowNo = medPlanRowNo; | ||
24 | } | ||
25 | public String getSupplierDoNo() { | ||
26 | return supplierDoNo; | ||
27 | } | ||
28 | public void setSupplierDoNo(String supplierDoNo) { | ||
29 | this.supplierDoNo = supplierDoNo; | ||
30 | } | ||
31 | public String getSupplierDoRowNo() { | ||
32 | return supplierDoRowNo; | ||
33 | } | ||
34 | public void setSupplierDoRowNo(String supplierDoRowNo) { | ||
35 | this.supplierDoRowNo = supplierDoRowNo; | ||
36 | } | ||
37 | public String getGoodsCode() { | ||
38 | return goodsCode; | ||
39 | } | ||
40 | public void setGoodsCode(String goodsCode) { | ||
41 | this.goodsCode = goodsCode; | ||
42 | } | ||
43 | public String getGoodsName() { | ||
44 | return goodsName; | ||
45 | } | ||
46 | public void setGoodsName(String goodsName) { | ||
47 | this.goodsName = goodsName; | ||
48 | } | ||
49 | public String getGoodsSpec() { | ||
50 | return goodsSpec; | ||
51 | } | ||
52 | public void setGoodsSpec(String goodsSpec) { | ||
53 | this.goodsSpec = goodsSpec; | ||
54 | } | ||
55 | public String getUnit() { | ||
56 | return unit; | ||
57 | } | ||
58 | public void setUnit(String unit) { | ||
59 | this.unit = unit; | ||
60 | } | ||
61 | public String getManufacturer() { | ||
62 | return manufacturer; | ||
63 | } | ||
64 | public void setManufacturer(String manufacturer) { | ||
65 | this.manufacturer = manufacturer; | ||
66 | } | ||
67 | public BigDecimal getPurchaserPrice() { | ||
68 | return purchaserPrice; | ||
69 | } | ||
70 | public void setPurchaserPrice(BigDecimal purchaserPrice) { | ||
71 | this.purchaserPrice = purchaserPrice; | ||
72 | } | ||
73 | public BigDecimal getAmount() { | ||
74 | return amount; | ||
75 | } | ||
76 | public void setAmount(BigDecimal amount) { | ||
77 | this.amount = amount; | ||
78 | } | ||
79 | public String getLot() { | ||
80 | return lot; | ||
81 | } | ||
82 | public void setLot(String lot) { | ||
83 | this.lot = lot; | ||
84 | } | ||
85 | public Date getProductionDate() { | ||
86 | return productionDate; | ||
87 | } | ||
88 | public void setProductionDate(Date productionDate) { | ||
89 | this.productionDate = productionDate; | ||
90 | } | ||
91 | public Date getExpireDate() { | ||
92 | return expireDate; | ||
93 | } | ||
94 | public void setExpireDate(Date expireDate) { | ||
95 | this.expireDate = expireDate; | ||
96 | } | ||
97 | public BigDecimal getArrivalqty() { | ||
98 | return arrivalqty; | ||
99 | } | ||
100 | public void setArrivalqty(BigDecimal arrivalqty) { | ||
101 | this.arrivalqty = arrivalqty; | ||
102 | } | ||
103 | public BigDecimal getMvqty() { | ||
104 | return mvqty; | ||
105 | } | ||
106 | public void setMvqty(BigDecimal mvqty) { | ||
107 | this.mvqty = mvqty; | ||
108 | } | ||
109 | public String getMemo() { | ||
110 | return memo; | ||
111 | } | ||
112 | public void setMemo(String memo) { | ||
113 | this.memo = memo; | ||
114 | } | ||
115 | private String id; | ||
116 | |||
117 | public String getId() { | ||
118 | return id; | ||
119 | } | ||
120 | public void setId(String id) { | ||
121 | this.id = id; | ||
122 | } | ||
123 | private String billNo; | ||
124 | private String rowNo; | ||
125 | private String medPlanRowNo; | ||
126 | private String supplierDoNo; | ||
127 | private String supplierDoRowNo; | ||
128 | private String goodsCode; | ||
129 | private String goodsName; | ||
130 | private String goodsSpec; | ||
131 | private String unit; | ||
132 | private String manufacturer; | ||
133 | private BigDecimal purchaserPrice; | ||
134 | private BigDecimal amount; | ||
135 | private String lot; | ||
136 | private Date productionDate; | ||
137 | private Date expireDate; | ||
138 | private BigDecimal arrivalqty; | ||
139 | private BigDecimal mvqty; | ||
140 | private String memo; | ||
141 | |||
142 | } |
1 | package com.phxl.common.util; | ||
2 | |||
3 | |||
4 | import java.io.BufferedReader; | ||
5 | import java.io.IOException; | ||
6 | import java.io.InputStream; | ||
7 | import java.io.InputStreamReader; | ||
8 | import java.util.List; | ||
9 | import java.util.regex.Matcher; | ||
10 | import java.util.regex.Pattern; | ||
11 | |||
12 | import org.apache.commons.logging.Log; | ||
13 | import org.apache.commons.logging.LogFactory; | ||
14 | |||
15 | |||
16 | public class VideoThumbTaker { | ||
17 | |||
18 | static Log log = LogFactory.getLog(VideoThumbTaker.class); | ||
19 | |||
20 | protected String ffmpegApp; | ||
21 | |||
22 | public VideoThumbTaker(String ffmpegApp) { | ||
23 | this.ffmpegApp = ffmpegApp; | ||
24 | } | ||
25 | |||
26 | @SuppressWarnings("unused") | ||
27 | /**** | ||
28 | * 获取指定时间内的图片 | ||
29 | * | ||
30 | * @param videoFilename:视频路径 | ||
31 | * @param thumbFilename:图片保存路径 | ||
32 | * @param width:图片长 | ||
33 | * @param height:图片宽 | ||
34 | * @param hour:指定时 | ||
35 | * @param min:指定分 | ||
36 | * @param sec:指定秒 | ||
37 | * @throws IOException | ||
38 | * @throws InterruptedException | ||
39 | */ | ||
40 | public void getThumb(String videoFilename, String thumbFilename, int width, int height, int hour, int min, | ||
41 | float sec) throws IOException, InterruptedException { | ||
42 | ProcessBuilder processBuilder = new ProcessBuilder(ffmpegApp, "-y", "-i", videoFilename, "-vframes", "1", "-ss", | ||
43 | hour + ":" + min + ":" + sec, "-f", "mjpeg", "-s", width + "*" + height, "-an", thumbFilename); | ||
44 | |||
45 | Process process = processBuilder.start(); | ||
46 | |||
47 | InputStream stderr = process.getErrorStream(); | ||
48 | InputStreamReader isr = new InputStreamReader(stderr); | ||
49 | BufferedReader br = new BufferedReader(isr); | ||
50 | String line; | ||
51 | while ((line = br.readLine()) != null) | ||
52 | ; | ||
53 | process.waitFor(); | ||
54 | |||
55 | if (br != null) | ||
56 | br.close(); | ||
57 | if (isr != null) | ||
58 | isr.close(); | ||
59 | if (stderr != null) | ||
60 | stderr.close(); | ||
61 | } | ||
62 | |||
63 | /**** | ||
64 | * 获取指定时间内的图片 | ||
65 | * | ||
66 | * @param ffmpeg:ffmpeg插件路径 | ||
67 | * @param localMp4:本地mp4保存路径 | ||
68 | * @param localMp4Img:本地mp4图片保存路径 | ||
69 | * @throws IOException | ||
70 | * @throws InterruptedException | ||
71 | */ | ||
72 | public static void getVidioImg(String ffmpeg,String localMp4,String localMp4Img) throws Exception{ | ||
73 | VideoThumbTaker videoThumbTaker = new VideoThumbTaker(ffmpeg); | ||
74 | videoThumbTaker.getThumb(localMp4, localMp4Img, 800,600, 0, 0, 0.5f); | ||
75 | |||
76 | } | ||
77 | |||
78 | |||
79 | /** | ||
80 | * 获取视频总时间 | ||
81 | * @param viedo_path 视频路径 | ||
82 | * @param ffmpeg_path ffmpeg路径 | ||
83 | * @return | ||
84 | */ | ||
85 | public static int getVideoTime(String video_path, String ffmpeg_path) { | ||
86 | List<String> commands = new java.util.ArrayList<String>(); | ||
87 | commands.add(ffmpeg_path); | ||
88 | commands.add("-i"); | ||
89 | commands.add(video_path); | ||
90 | try { | ||
91 | ProcessBuilder builder = new ProcessBuilder(); | ||
92 | builder.command(commands); | ||
93 | final Process p = builder.start(); | ||
94 | |||
95 | //从输入流中读取视频信息 | ||
96 | BufferedReader br = new BufferedReader(new InputStreamReader(p.getErrorStream())); | ||
97 | StringBuffer sb = new StringBuffer(); | ||
98 | String line = ""; | ||
99 | while ((line = br.readLine()) != null) { | ||
100 | sb.append(line); | ||
101 | } | ||
102 | br.close(); | ||
103 | |||
104 | //从视频信息中解析时长 | ||
105 | String regexDuration = "Duration: (.*?), start: (.*?), bitrate: (\\d*) kb\\/s"; | ||
106 | Pattern pattern = Pattern.compile(regexDuration); | ||
107 | Matcher m = pattern.matcher(sb.toString()); | ||
108 | if (m.find()) { | ||
109 | int time = getTimelen(m.group(1)); | ||
110 | //log.info(video_path+",视频时长:"+time+", 开始时间:"+m.group(2)+",比特率:"+m.group(3)+"kb/s"); | ||
111 | return time; | ||
112 | } | ||
113 | } catch (Exception e) { | ||
114 | log.error("获取音频时长失败:"+e); | ||
115 | } | ||
116 | |||
117 | return 0; | ||
118 | } | ||
119 | |||
120 | //格式:"00:00:10.68" | ||
121 | private static int getTimelen(String timelen){ | ||
122 | int min=0; | ||
123 | String strs[] = timelen.split(":"); | ||
124 | if (strs[0].compareTo("0") > 0) { | ||
125 | min+=Integer.valueOf(strs[0])*60*60;//秒 | ||
126 | } | ||
127 | if(strs[1].compareTo("0")>0){ | ||
128 | min+=Integer.valueOf(strs[1])*60; | ||
129 | } | ||
130 | if(strs[2].compareTo("0")>0){ | ||
131 | min+=Math.round(Float.valueOf(strs[2])); | ||
132 | } | ||
133 | return min; | ||
134 | } | ||
135 | |||
136 | //测试方法 | ||
137 | public static void main(String[] args) { | ||
138 | String ffmpegPath = "D:\\software\\ffmpeg\\bin\\ffmpeg.exe"; | ||
139 | //VideoThumbTaker videoThumbTaker = new VideoThumbTaker("D:\\software\\ffmpeg\\bin\\ffmpeg.exe"); | ||
140 | try { | ||
141 | /*videoThumbTaker.getThumb("D:\\videoMp4sLoc\\114265ef-beb6-437f-9015-2e9af8fa2b9a.mp4", "D:\\thumbTest222.png", 800,600, 0, 0, 1); | ||
142 | System.out.println("over");*/ | ||
143 | |||
144 | System.out.println(getVideoTime("D:\\jpg\\22.mp3",ffmpegPath)); | ||
145 | } catch (Exception e) { | ||
146 | e.printStackTrace(); | ||
147 | } | ||
148 | } | ||
149 | } |
1 | // JavaScript Document | ||
2 | jQuery.extend({ | ||
3 | |||
4 | createUploadIframe: function(id, uri) | ||
5 | { | ||
6 | //create frame | ||
7 | var frameId = 'jUploadFrame' + id; | ||
8 | |||
9 | if(window.ActiveXObject) { | ||
10 | var io = document.createElement('<iframe id="' + frameId + '" name="' + frameId + '" />'); | ||
11 | if(typeof uri== 'boolean'){ | ||
12 | io.src = 'javascript:false'; | ||
13 | } | ||
14 | else if(typeof uri== 'string'){ | ||
15 | io.src = uri; | ||
16 | } | ||
17 | } | ||
18 | else { | ||
19 | var io = document.createElement('iframe'); | ||
20 | io.id = frameId; | ||
21 | io.name = frameId; | ||
22 | } | ||
23 | io.style.position = 'absolute'; | ||
24 | io.style.top = '-1000px'; | ||
25 | io.style.left = '-1000px'; | ||
26 | |||
27 | document.body.appendChild(io); | ||
28 | |||
29 | return io; | ||
30 | }, | ||
31 | createUploadForm: function(id, fileElementId) | ||
32 | { | ||
33 | //create form | ||
34 | var formId = 'jUploadForm' + id; | ||
35 | var fileId = 'jUploadFile' + id; | ||
36 | var form = jQuery('<form action="" method="POST" name="' + formId + '" id="' + formId + '" enctype="multipart/form-data"></form>'); | ||
37 | var oldElement = jQuery('#' + fileElementId); | ||
38 | var newElement = jQuery(oldElement).clone(); | ||
39 | jQuery(oldElement).attr('id', fileId); | ||
40 | jQuery(oldElement).before(newElement); | ||
41 | jQuery(oldElement).appendTo(form); | ||
42 | //set attributes | ||
43 | jQuery(form).css('position', 'absolute'); | ||
44 | jQuery(form).css('top', '-1200px'); | ||
45 | jQuery(form).css('left', '-1200px'); | ||
46 | jQuery(form).appendTo('body'); | ||
47 | return form; | ||
48 | }, | ||
49 | |||
50 | ajaxFileUpload: function(s) { | ||
51 | // TODO introduce global settings, allowing the client to modify them for all requests, not only timeout | ||
52 | s = jQuery.extend({}, jQuery.ajaxSettings, s); | ||
53 | var id = s.fileElementId; | ||
54 | var form = jQuery.createUploadForm(id, s.fileElementId); | ||
55 | var io = jQuery.createUploadIframe(id, s.secureuri); | ||
56 | var frameId = 'jUploadFrame' + id; | ||
57 | var formId = 'jUploadForm' + id; | ||
58 | |||
59 | if( s.global && ! jQuery.active++ ) | ||
60 | { | ||
61 | // Watch for a new set of requests | ||
62 | jQuery.event.trigger( "ajaxStart" ); | ||
63 | } | ||
64 | var requestDone = false; | ||
65 | // Create the request object | ||
66 | var xml = {}; | ||
67 | if( s.global ) | ||
68 | { | ||
69 | jQuery.event.trigger("ajaxSend", [xml, s]); | ||
70 | } | ||
71 | |||
72 | var uploadCallback = function(isTimeout) | ||
73 | { | ||
74 | // Wait for a response to come back | ||
75 | var io = document.getElementById(frameId); | ||
76 | try | ||
77 | { | ||
78 | if(io.contentWindow) | ||
79 | { | ||
80 | xml.responseText = io.contentWindow.document.body?io.contentWindow.document.body.innerHTML:null; | ||
81 | xml.responseXML = io.contentWindow.document.XMLDocument?io.contentWindow.document.XMLDocument:io.contentWindow.document; | ||
82 | |||
83 | }else if(io.contentDocument) | ||
84 | { | ||
85 | xml.responseText = io.contentDocument.document.body?io.contentDocument.document.body.innerHTML:null; | ||
86 | xml.responseXML = io.contentDocument.document.XMLDocument?io.contentDocument.document.XMLDocument:io.contentDocument.document; | ||
87 | } | ||
88 | }catch(e) | ||
89 | { | ||
90 | jQuery.handleError(s, xml, null, e); | ||
91 | } | ||
92 | if( xml || isTimeout == "timeout") | ||
93 | { | ||
94 | requestDone = true; | ||
95 | var status; | ||
96 | try { | ||
97 | status = isTimeout != "timeout" ? "success" : "error"; | ||
98 | // Make sure that the request was successful or notmodified | ||
99 | if( status != "error" ) | ||
100 | { | ||
101 | // process the data (runs the xml through httpData regardless of callback) | ||
102 | var data = jQuery.uploadHttpData( xml, s.dataType ); | ||
103 | if( s.success ) | ||
104 | { | ||
105 | // ifa local callback was specified, fire it and pass it the data | ||
106 | s.success( data, status ); | ||
107 | }; | ||
108 | if( s.global ) | ||
109 | { | ||
110 | // Fire the global callback | ||
111 | jQuery.event.trigger( "ajaxSuccess", [xml, s] ); | ||
112 | }; | ||
113 | } else | ||
114 | { | ||
115 | jQuery.handleError(s, xml, status); | ||
116 | } | ||
117 | |||
118 | } catch(e) | ||
119 | { | ||
120 | status = "error"; | ||
121 | jQuery.handleError(s, xml, status, e); | ||
122 | }; | ||
123 | if( s.global ) | ||
124 | { | ||
125 | // The request was completed | ||
126 | jQuery.event.trigger( "ajaxComplete", [xml, s] ); | ||
127 | }; | ||
128 | |||
129 | |||
130 | // Handle the global AJAX counter | ||
131 | if(s.global && ! --jQuery.active) | ||
132 | { | ||
133 | jQuery.event.trigger("ajaxStop"); | ||
134 | }; | ||
135 | if(s.complete) | ||
136 | { | ||
137 | s.complete(xml, status); | ||
138 | } ; | ||
139 | |||
140 | jQuery(io).unbind(); | ||
141 | |||
142 | setTimeout(function() | ||
143 | { try | ||
144 | { | ||
145 | jQuery(io).remove(); | ||
146 | jQuery(form).remove(); | ||
147 | |||
148 | } catch(e) | ||
149 | { | ||
150 | jQuery.handleError(s, xml, null, e); | ||
151 | } | ||
152 | |||
153 | }, 100); | ||
154 | |||
155 | xml = null; | ||
156 | |||
157 | }; | ||
158 | } | ||
159 | // Timeout checker | ||
160 | if( s.timeout > 0 ) | ||
161 | { | ||
162 | setTimeout(function(){ | ||
163 | |||
164 | if( !requestDone ) | ||
165 | { | ||
166 | // Check to see ifthe request is still happening | ||
167 | uploadCallback( "timeout" ); | ||
168 | } | ||
169 | |||
170 | }, s.timeout); | ||
171 | } | ||
172 | try | ||
173 | { | ||
174 | var form = jQuery('#' + formId); | ||
175 | jQuery(form).attr('action', s.url); | ||
176 | jQuery(form).attr('method', 'POST'); | ||
177 | jQuery(form).attr('target', frameId); | ||
178 | if(form.encoding) | ||
179 | { | ||
180 | form.encoding = 'multipart/form-data'; | ||
181 | } | ||
182 | else | ||
183 | { | ||
184 | form.enctype = 'multipart/form-data'; | ||
185 | } | ||
186 | jQuery(form).submit(); | ||
187 | |||
188 | } catch(e) | ||
189 | { | ||
190 | jQuery.handleError(s, xml, null, e); | ||
191 | } | ||
192 | if(window.attachEvent){ | ||
193 | document.getElementById(frameId).attachEvent('onload', uploadCallback); | ||
194 | } | ||
195 | else{ | ||
196 | document.getElementById(frameId).addEventListener('load', uploadCallback, false); | ||
197 | } | ||
198 | return {abort: function () {}}; | ||
199 | |||
200 | }, | ||
201 | |||
202 | |||
203 | handleError: function( s, xhr, status, e ) { | ||
204 | // If a local callback was specified, fire it | ||
205 | if ( s.error ) { | ||
206 | s.error.call( s.context || s, xhr, status, e ); | ||
207 | } | ||
208 | |||
209 | // Fire the global callback | ||
210 | if ( s.global ) { | ||
211 | (s.context ? jQuery(s.context) : jQuery.event).trigger( "ajaxError", [xhr, s, e] ); | ||
212 | } | ||
213 | }, | ||
214 | |||
215 | uploadHttpData: function( r, type ) { | ||
216 | var data = !type; | ||
217 | data = type == "xml" || data ? r.responseXML : r.responseText; | ||
218 | // ifthe type is "script", eval it in global context | ||
219 | if( type == "script" ) | ||
220 | { | ||
221 | jQuery.globalEval( data ); | ||
222 | } | ||
223 | |||
224 | // Get the JavaScript object, ifJSON is used. | ||
225 | if( type == "json" ) | ||
226 | { | ||
227 | eval( "data = " + data ); | ||
228 | } | ||
229 | |||
230 | // evaluate scripts within html | ||
231 | if( type == "html" ) | ||
232 | { | ||
233 | jQuery("<div>").html(data).evalScripts(); | ||
234 | } | ||
235 | |||
236 | return data; | ||
237 | } | ||
238 | }); | ||
239 | |||
240 |
1 | <?xml version="1.0" encoding="UTF-8" ?> | ||
2 | <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" > | ||
3 | <mapper namespace="com.phxl.modules.goods.dao.billsettlement.BillSettlementDetailDao"> | ||
4 | |||
5 | <!--BaseResultMap --> | ||
6 | <resultMap id="BaseResultMap" | ||
7 | type="com.phxl.modules.goods.entity.billsettlement.BillSettlementDetail"> | ||
8 | <id column="id" property="id" jdbcType="BIGINT" /> | ||
9 | <result column="settle_bill_no" property="billNo" jdbcType="VARCHAR" /> | ||
10 | <result column="row_no" property="rowNo" jdbcType="TINYINT" /> | ||
11 | <result column="goods_cate" property="goodsCate" jdbcType="VARCHAR" /> | ||
12 | <result column="goods_code" property="goodsCode" jdbcType="VARCHAR" /> | ||
13 | <result column="goods_name" property="goodsName" jdbcType="VARCHAR" /> | ||
14 | <result column="settle_qty" property="settleQty" jdbcType="DECIMAL" /> | ||
15 | <result column="unit" property="unit" jdbcType="VARCHAR" /> | ||
16 | <result column="settle_price" property="settleUnit" jdbcType="DECIMAL" /> | ||
17 | <result column="settle_amount" property="settlePrice" jdbcType="DECIMAL" /> | ||
18 | <result column="regist_key" property="registKey" jdbcType="VARCHAR" /> | ||
19 | <result column="producer_name" property="producerName" jdbcType="VARCHAR" /> | ||
20 | <result column="lot" property="lot" jdbcType="VARCHAR" /> | ||
21 | <result column="production_date" property="productionDate" jdbcType="TIMESTAMP" /> | ||
22 | <result column="expire_date" property="expireDate" jdbcType="TIMESTAMP" /> | ||
23 | <result column="create_time" property="create_time" jdbcType="TIMESTAMP" /> | ||
24 | <result column="update_time" property="update_time" jdbcType="TIMESTAMP" /> | ||
25 | </resultMap> | ||
26 | |||
27 | <!--Base_Column_List --> | ||
28 | <sql id="Base_Column_List">id,settle_bill_no,row_no,goods_code,goods_name,settle_qty,unit,settle_price,settle_amount,regist_key,producer_name,lot,production_date,expire_date,create_time,update_time,goods_cate</sql> | ||
29 | |||
30 | <!--批量插入BillBackDetail --> | ||
31 | <insert id="batchInsert" parameterType="list"> | ||
32 | insert into med_bill_settlement_detail (id,settle_bill_no,row_no,goods_code,goods_name,settle_qty,unit,settle_price,settle_amount,regist_key,producer_name,lot,production_date,expire_date,create_time,update_time,goods_cate) | ||
33 | values | ||
34 | <foreach collection ="list" item="obj" separator =","> | ||
35 | <trim prefix=" (" suffix=")" suffixOverrides=","> | ||
36 | #{obj.id}, | ||
37 | #{obj.settleBillNo}, | ||
38 | #{obj.rowNo}, | ||
39 | #{obj.goodsCode}, | ||
40 | #{obj.goodsName}, | ||
41 | #{obj.settleQty}, | ||
42 | #{obj.unit}, | ||
43 | #{obj.settlePrice}, | ||
44 | #{obj.settleAmount}, | ||
45 | #{obj.registKey}, | ||
46 | #{obj.producerName}, | ||
47 | #{obj.lot}, | ||
48 | #{obj.productionDate}, | ||
49 | #{obj.expireDate}, | ||
50 | #{obj.create_time}, | ||
51 | #{obj.update_time}, | ||
52 | #{obj.goodsCate} | ||
53 | </trim> | ||
54 | </foreach> | ||
55 | </insert> | ||
56 | |||
57 | </mapper> | ||
... | \ No newline at end of file | ... | \ No newline at end of file |
1 | package com.phxl.modules.goods.entity.hisCtMedicineMaterial; | ||
2 | |||
3 | import java.math.BigDecimal; | ||
4 | /** | ||
5 | * | ||
6 | * @ClassName: HisCtMedicineMaterial | ||
7 | * @Description: 药品目录表实体类 | ||
8 | * @author zhangbing | ||
9 | * @date 2018-09-18 14:44:26 | ||
10 | * | ||
11 | */ | ||
12 | public class HisCtMedicineMaterial{ | ||
13 | |||
14 | private String id; | ||
15 | private String medCode; //HIS库房编码 | ||
16 | private String medName; //HIS库房名称 | ||
17 | public String getMedCode() { | ||
18 | return medCode; | ||
19 | } | ||
20 | private String goodsCode; //HIS商品编码 | ||
21 | private String goodsSpec; //规格 | ||
22 | private String goodsName; //商品名称 | ||
23 | private String sName; //通用名称 | ||
24 | private String pName; //打印名称 | ||
25 | private String helpCode; //助记码 | ||
26 | private String producer; //生产厂商 | ||
27 | private String agentName; //代理商/售后服务机构 | ||
28 | private String medGoodsCateGUID; //商品类别GUID | ||
29 | private String medGoodsCateName; //商品类别名称 | ||
30 | private String registKey; //批准文号 | ||
31 | private BigDecimal price; //采购价 | ||
32 | private BigDecimal salePrice; //零售价 | ||
33 | private BigDecimal batSalePrice; //批发价 | ||
34 | private String productionAddress; //产地 | ||
35 | private String dosageForm; //剂型 | ||
36 | private BigDecimal length; //长 | ||
37 | private BigDecimal width; //宽 | ||
38 | private BigDecimal height; //高 | ||
39 | private BigDecimal grossWeight; //毛重 | ||
40 | private BigDecimal netWeight; //净重 | ||
41 | private String unitStyle; //计量单位,最小单位:支、片等 | ||
42 | private String bigUnitStyle; //大包装单位 | ||
43 | private BigDecimal bigUnitQty; //大包装含量 | ||
44 | private String bigBcd; //大包装条码 | ||
45 | private String minUnitStyle; //小包装单位 | ||
46 | private BigDecimal minUnitQty; //小包装含量 | ||
47 | private String litBcd; //小包装条码 | ||
48 | private String isLotCtrlInput; //批号必输检验 | ||
49 | private String bizState; //业务状态 | ||
50 | private String importedFlag; //生产来源 | ||
51 | private String reportFlag; //报告药标识 | ||
52 | private String noxiousFlag; //毒麻标识 | ||
53 | private String drugNerveFlag; //精神药标识 | ||
54 | private String productStandardCode; //产品本位码 | ||
55 | private String specStandardCode; //规格本位码 | ||
56 | private String brand; //品牌 | ||
57 | private String coldFlag; //冷藏标识 | ||
58 | private String supplierCode; //供应商编码 | ||
59 | private String supplierName; //供应商名称 | ||
60 | private String memo; //备注 | ||
61 | public void setMedCode(String medCode) { | ||
62 | this.medCode = medCode; | ||
63 | } | ||
64 | public String getMedName() { | ||
65 | return medName; | ||
66 | } | ||
67 | public void setMedName(String medName) { | ||
68 | this.medName = medName; | ||
69 | } | ||
70 | public String getGoodsCode() { | ||
71 | return goodsCode; | ||
72 | } | ||
73 | public void setGoodsCode(String goodsCode) { | ||
74 | this.goodsCode = goodsCode; | ||
75 | } | ||
76 | public String getGoodsSpec() { | ||
77 | return goodsSpec; | ||
78 | } | ||
79 | public void setGoodsSpec(String goodsSpec) { | ||
80 | this.goodsSpec = goodsSpec; | ||
81 | } | ||
82 | public String getGoodsName() { | ||
83 | return goodsName; | ||
84 | } | ||
85 | public void setGoodsName(String goodsName) { | ||
86 | this.goodsName = goodsName; | ||
87 | } | ||
88 | public String getsName() { | ||
89 | return sName; | ||
90 | } | ||
91 | public void setsName(String sName) { | ||
92 | this.sName = sName; | ||
93 | } | ||
94 | public String getpName() { | ||
95 | return pName; | ||
96 | } | ||
97 | public void setpName(String pName) { | ||
98 | this.pName = pName; | ||
99 | } | ||
100 | public String getHelpCode() { | ||
101 | return helpCode; | ||
102 | } | ||
103 | public void setHelpCode(String helpCode) { | ||
104 | this.helpCode = helpCode; | ||
105 | } | ||
106 | public String getProducer() { | ||
107 | return producer; | ||
108 | } | ||
109 | public void setProducer(String producer) { | ||
110 | this.producer = producer; | ||
111 | } | ||
112 | public String getAgentName() { | ||
113 | return agentName; | ||
114 | } | ||
115 | public void setAgentName(String agentName) { | ||
116 | this.agentName = agentName; | ||
117 | } | ||
118 | public String getMedGoodsCateGUID() { | ||
119 | return medGoodsCateGUID; | ||
120 | } | ||
121 | public void setMedGoodsCateGUID(String medGoodsCateGUID) { | ||
122 | this.medGoodsCateGUID = medGoodsCateGUID; | ||
123 | } | ||
124 | public String getMedGoodsCateName() { | ||
125 | return medGoodsCateName; | ||
126 | } | ||
127 | public void setMedGoodsCateName(String medGoodsCateName) { | ||
128 | this.medGoodsCateName = medGoodsCateName; | ||
129 | } | ||
130 | public String getRegistKey() { | ||
131 | return registKey; | ||
132 | } | ||
133 | public void setRegistKey(String registKey) { | ||
134 | this.registKey = registKey; | ||
135 | } | ||
136 | public BigDecimal getPrice() { | ||
137 | return price; | ||
138 | } | ||
139 | public void setPrice(BigDecimal price) { | ||
140 | this.price = price; | ||
141 | } | ||
142 | public BigDecimal getSalePrice() { | ||
143 | return salePrice; | ||
144 | } | ||
145 | public void setSalePrice(BigDecimal salePrice) { | ||
146 | this.salePrice = salePrice; | ||
147 | } | ||
148 | public BigDecimal getBatSalePrice() { | ||
149 | return batSalePrice; | ||
150 | } | ||
151 | public void setBatSalePrice(BigDecimal batSalePrice) { | ||
152 | this.batSalePrice = batSalePrice; | ||
153 | } | ||
154 | public String getProductionAddress() { | ||
155 | return productionAddress; | ||
156 | } | ||
157 | public void setProductionAddress(String productionAddress) { | ||
158 | this.productionAddress = productionAddress; | ||
159 | } | ||
160 | public String getDosageForm() { | ||
161 | return dosageForm; | ||
162 | } | ||
163 | public void setDosageForm(String dosageForm) { | ||
164 | this.dosageForm = dosageForm; | ||
165 | } | ||
166 | public BigDecimal getLength() { | ||
167 | return length; | ||
168 | } | ||
169 | public void setLength(BigDecimal length) { | ||
170 | this.length = length; | ||
171 | } | ||
172 | public BigDecimal getWidth() { | ||
173 | return width; | ||
174 | } | ||
175 | public void setWidth(BigDecimal width) { | ||
176 | this.width = width; | ||
177 | } | ||
178 | public BigDecimal getHeight() { | ||
179 | return height; | ||
180 | } | ||
181 | public void setHeight(BigDecimal height) { | ||
182 | this.height = height; | ||
183 | } | ||
184 | public BigDecimal getGrossWeight() { | ||
185 | return grossWeight; | ||
186 | } | ||
187 | public void setGrossWeight(BigDecimal grossWeight) { | ||
188 | this.grossWeight = grossWeight; | ||
189 | } | ||
190 | public BigDecimal getNetWeight() { | ||
191 | return netWeight; | ||
192 | } | ||
193 | public void setNetWeight(BigDecimal netWeight) { | ||
194 | this.netWeight = netWeight; | ||
195 | } | ||
196 | public String getUnitStyle() { | ||
197 | return unitStyle; | ||
198 | } | ||
199 | public void setUnitStyle(String unitStyle) { | ||
200 | this.unitStyle = unitStyle; | ||
201 | } | ||
202 | public String getBigUnitStyle() { | ||
203 | return bigUnitStyle; | ||
204 | } | ||
205 | public void setBigUnitStyle(String bigUnitStyle) { | ||
206 | this.bigUnitStyle = bigUnitStyle; | ||
207 | } | ||
208 | public BigDecimal getBigUnitQty() { | ||
209 | return bigUnitQty; | ||
210 | } | ||
211 | public void setBigUnitQty(BigDecimal bigUnitQty) { | ||
212 | this.bigUnitQty = bigUnitQty; | ||
213 | } | ||
214 | public String getBigBcd() { | ||
215 | return bigBcd; | ||
216 | } | ||
217 | public void setBigBcd(String bigBcd) { | ||
218 | this.bigBcd = bigBcd; | ||
219 | } | ||
220 | public String getMinUnitStyle() { | ||
221 | return minUnitStyle; | ||
222 | } | ||
223 | public void setMinUnitStyle(String minUnitStyle) { | ||
224 | this.minUnitStyle = minUnitStyle; | ||
225 | } | ||
226 | public BigDecimal getMinUnitQty() { | ||
227 | return minUnitQty; | ||
228 | } | ||
229 | public void setMinUnitQty(BigDecimal minUnitQty) { | ||
230 | this.minUnitQty = minUnitQty; | ||
231 | } | ||
232 | public String getLitBcd() { | ||
233 | return litBcd; | ||
234 | } | ||
235 | public void setLitBcd(String litBcd) { | ||
236 | this.litBcd = litBcd; | ||
237 | } | ||
238 | public String getIsLotCtrlInput() { | ||
239 | return isLotCtrlInput; | ||
240 | } | ||
241 | public void setIsLotCtrlInput(String isLotCtrlInput) { | ||
242 | this.isLotCtrlInput = isLotCtrlInput; | ||
243 | } | ||
244 | public String getBizState() { | ||
245 | return bizState; | ||
246 | } | ||
247 | public void setBizState(String bizState) { | ||
248 | this.bizState = bizState; | ||
249 | } | ||
250 | public String getImportedFlag() { | ||
251 | return importedFlag; | ||
252 | } | ||
253 | public void setImportedFlag(String importedFlag) { | ||
254 | this.importedFlag = importedFlag; | ||
255 | } | ||
256 | public String getReportFlag() { | ||
257 | return reportFlag; | ||
258 | } | ||
259 | public void setReportFlag(String reportFlag) { | ||
260 | this.reportFlag = reportFlag; | ||
261 | } | ||
262 | public String getNoxiousFlag() { | ||
263 | return noxiousFlag; | ||
264 | } | ||
265 | public void setNoxiousFlag(String noxiousFlag) { | ||
266 | this.noxiousFlag = noxiousFlag; | ||
267 | } | ||
268 | public String getDrugNerveFlag() { | ||
269 | return drugNerveFlag; | ||
270 | } | ||
271 | public void setDrugNerveFlag(String drugNerveFlag) { | ||
272 | this.drugNerveFlag = drugNerveFlag; | ||
273 | } | ||
274 | public String getProductStandardCode() { | ||
275 | return productStandardCode; | ||
276 | } | ||
277 | public void setProductStandardCode(String productStandardCode) { | ||
278 | this.productStandardCode = productStandardCode; | ||
279 | } | ||
280 | public String getSpecStandardCode() { | ||
281 | return specStandardCode; | ||
282 | } | ||
283 | public void setSpecStandardCode(String specStandardCode) { | ||
284 | this.specStandardCode = specStandardCode; | ||
285 | } | ||
286 | public String getBrand() { | ||
287 | return brand; | ||
288 | } | ||
289 | public void setBrand(String brand) { | ||
290 | this.brand = brand; | ||
291 | } | ||
292 | public String getColdFlag() { | ||
293 | return coldFlag; | ||
294 | } | ||
295 | public void setColdFlag(String coldFlag) { | ||
296 | this.coldFlag = coldFlag; | ||
297 | } | ||
298 | public String getSupplierCode() { | ||
299 | return supplierCode; | ||
300 | } | ||
301 | public void setSupplierCode(String supplierCode) { | ||
302 | this.supplierCode = supplierCode; | ||
303 | } | ||
304 | public String getSupplierName() { | ||
305 | return supplierName; | ||
306 | } | ||
307 | public void setSupplierName(String supplierName) { | ||
308 | this.supplierName = supplierName; | ||
309 | } | ||
310 | public String getMemo() { | ||
311 | return memo; | ||
312 | } | ||
313 | public void setMemo(String memo) { | ||
314 | this.memo = memo; | ||
315 | } | ||
316 | public String getId() { | ||
317 | return id; | ||
318 | } | ||
319 | public void setId(String id) { | ||
320 | this.id = id; | ||
321 | } | ||
322 | |||
323 | } | ||
... | \ No newline at end of file | ... | \ No newline at end of file |
1 | <?xml version="1.0" encoding="UTF-8"?> | ||
2 | <beans xmlns="http://www.springframework.org/schema/beans" | ||
3 | xmlns:aop="http://www.springframework.org/schema/aop" | ||
4 | xmlns:context="http://www.springframework.org/schema/context" | ||
5 | xmlns:mvc="http://www.springframework.org/schema/mvc" | ||
6 | xmlns:tx="http://www.springframework.org/schema/tx" | ||
7 | xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" | ||
8 | xsi:schemaLocation="http://www.springframework.org/schema/aop | ||
9 | http://www.springframework.org/schema/aop/spring-aop-4.1.xsd | ||
10 | http://www.springframework.org/schema/beans | ||
11 | http://www.springframework.org/schema/beans/spring-beans-4.1.xsd | ||
12 | http://www.springframework.org/schema/context | ||
13 | http://www.springframework.org/schema/context/spring-context-4.1.xsd | ||
14 | http://www.springframework.org/schema/mvc | ||
15 | http://www.springframework.org/schema/mvc/spring-mvc-4.1.xsd | ||
16 | http://www.springframework.org/schema/tx | ||
17 | http://www.springframework.org/schema/tx/spring-tx-4.1.xsd"> | ||
18 | |||
19 | <mvc:annotation-driven> | ||
20 | <mvc:message-converters register-defaults="true"> | ||
21 | <bean class="org.springframework.http.converter.StringHttpMessageConverter"> | ||
22 | <constructor-arg value="UTF-8" /> | ||
23 | </bean> | ||
24 | </mvc:message-converters> | ||
25 | </mvc:annotation-driven> | ||
26 | |||
27 | <mvc:default-servlet-handler/> | ||
28 | <context:component-scan base-package="com.phxl.*" /> | ||
29 | |||
30 | |||
31 | |||
32 | <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"> | ||
33 | <property name="prefix" value="/WEB-INF/views/" /> | ||
34 | <property name="suffix" value=".jsp" /> | ||
35 | </bean> | ||
36 | |||
37 | <bean id="multipartResolver" | ||
38 | class="org.springframework.web.multipart.commons.CommonsMultipartResolver"> | ||
39 | <!--设置最大上传文件501M--> | ||
40 | <property name="maxUploadSize" value="525336576"/> | ||
41 | |||
42 | <property name="resolveLazily" value="true"/> | ||
43 | </bean> | ||
44 | |||
45 | |||
46 | |||
47 | |||
48 | <!-- 处理JSON数据转换的 --> | ||
49 | <bean id="mappingJacksonHttpMessageConverter" | ||
50 | class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter"> | ||
51 | <property name="supportedMediaTypes"> | ||
52 | <list> | ||
53 | <value>text/html;charset=UTF-8</value> | ||
54 | <value>text/xml;charset=UTF-8</value> | ||
55 | <value>application/xml;charset=UTF-8</value> | ||
56 | </list> | ||
57 | </property> | ||
58 | </bean> | ||
59 | |||
60 | |||
61 | |||
62 | |||
63 | <!-- SpringMVC在超出上传文件限制时,会抛出org.springframework.web.multipart.MaxUploadSizeExceededException --> | ||
64 | <!-- 该异常是SpringMVC在检查上传的文件信息时抛出来的,而且此时还没有进入到Controller方法中 --> | ||
65 | <!-- <bean id="exceptionResolver" class="org.springframework.web.servlet.handler.SimpleMappingExceptionResolver"> | ||
66 | <property name="exceptionMappings"> | ||
67 | <props> | ||
68 | 遇到MaxUploadSizeExceededException异常时,自动跳转到/WEB-INF/jsp/error_fileupload.jsp页面 | ||
69 | <prop key="org.springframework.web.multipart.MaxUploadSizeExceededException">error</prop> | ||
70 | </props> | ||
71 | </property> | ||
72 | </bean> --> | ||
73 | </beans> | ||
... | \ No newline at end of file | ... | \ No newline at end of file |
This diff is collapsed.
Click to expand it.
1 | package com.phxl.modules.goods.entity.ctdept; | ||
2 | |||
3 | import java.util.Date; | ||
4 | /** | ||
5 | * | ||
6 | * @ClassName: HisCtDept | ||
7 | * @Description: 医院科室表实体类 | ||
8 | * @author hehaihong | ||
9 | * @date 2018-08-08 09:28:47 | ||
10 | * | ||
11 | */ | ||
12 | public class HisCtDept{ | ||
13 | |||
14 | private String hdeptCode; //科室编码 | ||
15 | private String hdeptName; //科室名称 | ||
16 | private String helpCode; //助记码 | ||
17 | private String upperGUID; //上级编号 | ||
18 | private String isOrderRight; //是否有订货权限 | ||
19 | private String category; //类别 | ||
20 | private String director; //主管 | ||
21 | private String state; //状态 | ||
22 | private String isLastLevel; //是否末级 | ||
23 | private Date create_time; //创建时间 | ||
24 | private Date update_time; //更新时间 | ||
25 | |||
26 | private String id; | ||
27 | |||
28 | |||
29 | public String getId() { | ||
30 | return id; | ||
31 | } | ||
32 | public void setId(String id) { | ||
33 | this.id = id; | ||
34 | } | ||
35 | public String getHdeptCode() { | ||
36 | return hdeptCode; | ||
37 | } | ||
38 | public void setHdeptCode(String hdeptCode) { | ||
39 | this.hdeptCode = hdeptCode; | ||
40 | } | ||
41 | public String getHdeptName() { | ||
42 | return hdeptName; | ||
43 | } | ||
44 | public void setHdeptName(String hdeptName) { | ||
45 | this.hdeptName = hdeptName; | ||
46 | } | ||
47 | public String getHelpCode() { | ||
48 | return helpCode; | ||
49 | } | ||
50 | public void setHelpCode(String helpCode) { | ||
51 | this.helpCode = helpCode; | ||
52 | } | ||
53 | public String getUpperGUID() { | ||
54 | return upperGUID; | ||
55 | } | ||
56 | public void setUpperGUID(String upperGUID) { | ||
57 | this.upperGUID = upperGUID; | ||
58 | } | ||
59 | public String getIsOrderRight() { | ||
60 | return isOrderRight; | ||
61 | } | ||
62 | public void setIsOrderRight(String isOrderRight) { | ||
63 | this.isOrderRight = isOrderRight; | ||
64 | } | ||
65 | public String getCategory() { | ||
66 | return category; | ||
67 | } | ||
68 | public void setCategory(String category) { | ||
69 | this.category = category; | ||
70 | } | ||
71 | public String getDirector() { | ||
72 | return director; | ||
73 | } | ||
74 | public void setDirector(String director) { | ||
75 | this.director = director; | ||
76 | } | ||
77 | public String getState() { | ||
78 | return state; | ||
79 | } | ||
80 | public void setState(String state) { | ||
81 | this.state = state; | ||
82 | } | ||
83 | public String getIsLastLevel() { | ||
84 | return isLastLevel; | ||
85 | } | ||
86 | public void setIsLastLevel(String isLastLevel) { | ||
87 | this.isLastLevel = isLastLevel; | ||
88 | } | ||
89 | public Date getCreate_time() { | ||
90 | return create_time; | ||
91 | } | ||
92 | public void setCreate_time(Date create_time) { | ||
93 | this.create_time = create_time; | ||
94 | } | ||
95 | public Date getUpdate_time() { | ||
96 | return update_time; | ||
97 | } | ||
98 | public void setUpdate_time(Date update_time) { | ||
99 | this.update_time = update_time; | ||
100 | } | ||
101 | |||
102 | } | ||
... | \ No newline at end of file | ... | \ No newline at end of file |
1 | <?xml version="1.0" encoding="UTF-8" ?> | ||
2 | <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" > | ||
3 | <mapper namespace="com.phxl.modules.goods.dao.medplan.MedPlanDao"> | ||
4 | |||
5 | <!--BaseResultMap --> | ||
6 | <resultMap id="BaseResultMap" | ||
7 | type="com.phxl.modules.goods.entity.medplan.MedPlan"> | ||
8 | <id column="id" property="id" jdbcType="BIGINT" /> | ||
9 | <result column="med_code" property="medCode" jdbcType="VARCHAR" /> | ||
10 | <result column="med_name" property="medName" jdbcType="VARCHAR" /> | ||
11 | <result column="supplier_code" property="supplierCode" jdbcType="VARCHAR" /> | ||
12 | <result column="supplier_name" property="suppliername" jdbcType="VARCHAR" /> | ||
13 | <result column="bill_no" property="billNo" jdbcType="VARCHAR" /> | ||
14 | <result column="bill_type" property="billType" jdbcType="VARCHAR" /> | ||
15 | <result column="settle_type" property="settleType" jdbcType="VARCHAR" /> | ||
16 | <result column="med_dept_code" property="medDeptCode" jdbcType="VARCHAR" /> | ||
17 | <result column="med_dept_name" property="medDeptName" jdbcType="VARCHAR" /> | ||
18 | <result column="med_store_code" property="medStoreCode" jdbcType="VARCHAR" /> | ||
19 | <result column="med_store_name" property="medStoreName" jdbcType="VARCHAR" /> | ||
20 | <result column="first_flag" property="firstFlag" jdbcType="VARCHAR" /> | ||
21 | <result column="plan_begin_date" property="planBeginDate" jdbcType="TIMESTAMP" /> | ||
22 | <result column="plan_end_date" property="planEndDate" jdbcType="TIMESTAMP" /> | ||
23 | <result column="memo" property="memo" jdbcType="VARCHAR" /> | ||
24 | <result column="operater_name" property="operaterName" jdbcType="VARCHAR" /> | ||
25 | <result column="input_date" property="inputDate" jdbcType="TIMESTAMP" /> | ||
26 | <result column="create_time" property="create_time" jdbcType="TIMESTAMP" /> | ||
27 | <result column="update_time" property="update_time" jdbcType="TIMESTAMP" /> | ||
28 | </resultMap> | ||
29 | |||
30 | <!--Base_Column_List --> | ||
31 | <sql id="Base_Column_List">id,med_code,med_name,supplier_code,supplier_name,bill_no,bill_type,med_dept_code,med_dept_name,med_store_code,med_store_name,first_flag,plan_begin_date,plan_end_date,memo,operater_name,input_date,create_time,update_time</sql> | ||
32 | |||
33 | <!--批量插入 --> | ||
34 | <insert id="batchInsert" parameterType="list"> | ||
35 | insert into med_hli_plan (id,med_code,med_name,supplier_code,supplier_name,bill_no,bill_type,med_dept_code,med_dept_name,med_store_code,med_store_name,first_flag,plan_begin_date,plan_end_date,memo,operater_name,input_date,create_time,update_time) | ||
36 | values | ||
37 | <foreach collection ="list" item="obj" separator =","> | ||
38 | <trim prefix=" (" suffix=")" suffixOverrides=","> | ||
39 | #{obj.id}, | ||
40 | #{obj.medCode}, | ||
41 | #{obj.medName}, | ||
42 | #{obj.supplierCode}, | ||
43 | #{obj.suppliername}, | ||
44 | #{obj.billNo}, | ||
45 | #{obj.billType}, | ||
46 | #{obj.medDeptCode}, | ||
47 | #{obj.medDeptName}, | ||
48 | #{obj.medStoreCode}, | ||
49 | #{obj.medStoreName}, | ||
50 | #{obj.firstFlag}, | ||
51 | #{obj.planBeginDate}, | ||
52 | #{obj.planEndDate}, | ||
53 | #{obj.memo}, | ||
54 | #{obj.operaterName}, | ||
55 | #{obj.inputDate}, | ||
56 | #{obj.create_time}, | ||
57 | #{obj.update_time} | ||
58 | </trim> | ||
59 | </foreach> | ||
60 | </insert> | ||
61 | |||
62 | <!-- 新增MedPlan--> | ||
63 | <insert id="insert" parameterType="com.phxl.modules.goods.entity.medplan.MedPlan"> | ||
64 | insert into med_hli_plan (id,med_code,med_name,supplier_code,supplier_name,bill_no,bill_type,settle_type,med_dept_code,med_dept_name,med_store_code,med_store_name,first_flag,plan_begin_date,plan_end_date,memo,operater_name,input_date,create_time,update_time) | ||
65 | values ( | ||
66 | #{id,jdbcType=VARCHAR} | ||
67 | ,#{medCode,jdbcType=VARCHAR} | ||
68 | ,#{medName,jdbcType=VARCHAR} | ||
69 | ,#{supplierCode,jdbcType=VARCHAR} | ||
70 | ,#{suppliername,jdbcType=VARCHAR} | ||
71 | ,#{billNo,jdbcType=VARCHAR} | ||
72 | ,#{billType,jdbcType=VARCHAR} | ||
73 | ,#{settleType,jdbcType=VARCHAR} | ||
74 | ,#{medDeptCode,jdbcType=VARCHAR} | ||
75 | ,#{medDeptName,jdbcType=VARCHAR} | ||
76 | ,#{medStoreCode,jdbcType=VARCHAR} | ||
77 | ,#{medStoreName,jdbcType=VARCHAR} | ||
78 | ,#{firstFlag,jdbcType=VARCHAR} | ||
79 | ,#{planBeginDate,jdbcType=TIMESTAMP} | ||
80 | ,#{planEndDate,jdbcType=TIMESTAMP} | ||
81 | ,#{memo,jdbcType=VARCHAR} | ||
82 | ,#{operaterName,jdbcType=VARCHAR} | ||
83 | ,#{inputDate,jdbcType=TIMESTAMP} | ||
84 | ,#{create_time,jdbcType=TIMESTAMP} | ||
85 | ,#{update_time,jdbcType=TIMESTAMP} | ||
86 | ) | ||
87 | </insert> | ||
88 | |||
89 | </mapper> | ||
... | \ No newline at end of file | ... | \ No newline at end of file |
1 | package com.phxl.modules.goods.entity.invoiceback; | ||
2 | |||
3 | import java.math.BigDecimal; | ||
4 | import java.util.Date; | ||
5 | |||
6 | import com.alibaba.fastjson.annotation.JSONField; | ||
7 | |||
8 | public class SuInvoiceBackDetail { | ||
9 | @JSONField(name="SettleBillNo") | ||
10 | private String settleBillNo; //结算单号 | ||
11 | @JSONField(name="RowNo") | ||
12 | private int rowNo; //行号 | ||
13 | @JSONField(name="GoodsCode") | ||
14 | private String goodsCode; //商品编码 | ||
15 | public String getSettleBillNo() { | ||
16 | return settleBillNo; | ||
17 | } | ||
18 | public void setSettleBillNo(String settleBillNo) { | ||
19 | this.settleBillNo = settleBillNo; | ||
20 | } | ||
21 | public int getRowNo() { | ||
22 | return rowNo; | ||
23 | } | ||
24 | public void setRowNo(int rowNo) { | ||
25 | this.rowNo = rowNo; | ||
26 | } | ||
27 | public String getGoodsCode() { | ||
28 | return goodsCode; | ||
29 | } | ||
30 | public void setGoodsCode(String goodsCode) { | ||
31 | this.goodsCode = goodsCode; | ||
32 | } | ||
33 | public String getGoodsName() { | ||
34 | return goodsName; | ||
35 | } | ||
36 | public void setGoodsName(String goodsName) { | ||
37 | this.goodsName = goodsName; | ||
38 | } | ||
39 | public String getGoodsSpec() { | ||
40 | return goodsSpec; | ||
41 | } | ||
42 | public void setGoodsSpec(String goodsSpec) { | ||
43 | this.goodsSpec = goodsSpec; | ||
44 | } | ||
45 | public String getProducerName() { | ||
46 | return producerName; | ||
47 | } | ||
48 | public void setProducerName(String producerName) { | ||
49 | this.producerName = producerName; | ||
50 | } | ||
51 | public String getRegistKey() { | ||
52 | return registKey; | ||
53 | } | ||
54 | public void setRegistKey(String registKey) { | ||
55 | this.registKey = registKey; | ||
56 | } | ||
57 | public BigDecimal getSettleQty() { | ||
58 | return settleQty; | ||
59 | } | ||
60 | public void setSettleQty(BigDecimal settleQty) { | ||
61 | this.settleQty = settleQty; | ||
62 | } | ||
63 | public String getUnit() { | ||
64 | return unit; | ||
65 | } | ||
66 | public void setUnit(String unit) { | ||
67 | this.unit = unit; | ||
68 | } | ||
69 | public BigDecimal getSettlePrice() { | ||
70 | return settlePrice; | ||
71 | } | ||
72 | public void setSettlePrice(BigDecimal settlePrice) { | ||
73 | this.settlePrice = settlePrice; | ||
74 | } | ||
75 | public BigDecimal getSettleAmount() { | ||
76 | return settleAmount; | ||
77 | } | ||
78 | public void setSettleAmount(BigDecimal settleAmount) { | ||
79 | this.settleAmount = settleAmount; | ||
80 | } | ||
81 | public String getInvoiceNo() { | ||
82 | return invoiceNo; | ||
83 | } | ||
84 | public void setInvoiceNo(String invoiceNo) { | ||
85 | this.invoiceNo = invoiceNo; | ||
86 | } | ||
87 | public String getInvoiceCode() { | ||
88 | return invoiceCode; | ||
89 | } | ||
90 | public void setInvoiceCode(String invoiceCode) { | ||
91 | this.invoiceCode = invoiceCode; | ||
92 | } | ||
93 | public Date getInvoiceTime() { | ||
94 | return invoiceTime; | ||
95 | } | ||
96 | public void setInvoiceTime(Date invoiceTime) { | ||
97 | this.invoiceTime = invoiceTime; | ||
98 | } | ||
99 | public BigDecimal getInvoiceAmount() { | ||
100 | return invoiceAmount; | ||
101 | } | ||
102 | public void setInvoiceAmount(BigDecimal invoiceAmount) { | ||
103 | this.invoiceAmount = invoiceAmount; | ||
104 | } | ||
105 | public String getId() { | ||
106 | return id; | ||
107 | } | ||
108 | public void setId(String id) { | ||
109 | this.id = id; | ||
110 | } | ||
111 | public String getSupplierCode() { | ||
112 | return supplierCode; | ||
113 | } | ||
114 | public void setSupplierCode(String supplierCode) { | ||
115 | this.supplierCode = supplierCode; | ||
116 | } | ||
117 | public String getSupplierName() { | ||
118 | return supplierName; | ||
119 | } | ||
120 | public void setSupplierName(String supplierName) { | ||
121 | this.supplierName = supplierName; | ||
122 | } | ||
123 | public Date getSettleDate() { | ||
124 | return settleDate; | ||
125 | } | ||
126 | public void setSettleDate(Date settleDate) { | ||
127 | this.settleDate = settleDate; | ||
128 | } | ||
129 | @JSONField(name="GoodsName") | ||
130 | private String goodsName; //商品名称 | ||
131 | @JSONField(name="GoodsSpec") | ||
132 | private String goodsSpec; //商品规格 | ||
133 | @JSONField(name="ProducerName") | ||
134 | private String producerName; //生产厂商名称 | ||
135 | @JSONField(name="RegistKey") | ||
136 | private String registKey; //批准文号 | ||
137 | @JSONField(name="SettleQty") | ||
138 | private BigDecimal settleQty; //结算数量 | ||
139 | @JSONField(name="Unit") | ||
140 | private String unit; //包装单位 | ||
141 | public Date getCreate_time() { | ||
142 | return create_time; | ||
143 | } | ||
144 | public void setCreate_time(Date create_time) { | ||
145 | this.create_time = create_time; | ||
146 | } | ||
147 | public Date getUpdate_time() { | ||
148 | return update_time; | ||
149 | } | ||
150 | public void setUpdate_time(Date update_time) { | ||
151 | this.update_time = update_time; | ||
152 | } | ||
153 | @JSONField(name="SettlePrice") | ||
154 | private BigDecimal settlePrice; //结算价格 | ||
155 | @JSONField(name="SettleAmount") | ||
156 | private BigDecimal settleAmount; //结算金额 | ||
157 | @JSONField(name="CREATE_TIME",format="yyyy-MM-dd HH:mm:ss") | ||
158 | private Date create_time; //创建时间 | ||
159 | @JSONField(name="UPDATE_TIME",format="yyyy-MM-dd HH:mm:ss") | ||
160 | private Date update_time; //更新时间 | ||
161 | @JSONField(name="InvoiceNo") | ||
162 | private String invoiceNo; //发票号 | ||
163 | @JSONField(name="InvoiceCode") | ||
164 | private String invoiceCode; //发票代码 | ||
165 | @JSONField(name="InvoiceTime") | ||
166 | private Date invoiceTime; //发票日期 | ||
167 | @JSONField(name="InvoiceAmount") | ||
168 | private BigDecimal invoiceAmount; //发票金额 | ||
169 | |||
170 | private String id; | ||
171 | //供应商code | ||
172 | @JSONField(name="SupplierCode") | ||
173 | private String supplierCode; | ||
174 | //供应商名称 | ||
175 | @JSONField(name="SupplierName") | ||
176 | private String supplierName; | ||
177 | //结算日期 | ||
178 | @JSONField(name="SettleDate") | ||
179 | private Date settleDate; | ||
180 | |||
181 | |||
182 | } |
1 | package com.phxl.modules.goods.entity.medinstore; | ||
2 | |||
3 | import java.util.Date; | ||
4 | import java.util.List; | ||
5 | |||
6 | public class MedInStore { | ||
7 | public String getBillNo() { | ||
8 | return billNo; | ||
9 | } | ||
10 | public void setBillNo(String billNo) { | ||
11 | this.billNo = billNo; | ||
12 | } | ||
13 | public String getMedGuid() { | ||
14 | return medGuid; | ||
15 | } | ||
16 | public void setMedGuid(String medGuid) { | ||
17 | this.medGuid = medGuid; | ||
18 | } | ||
19 | public String getMedName() { | ||
20 | return medName; | ||
21 | } | ||
22 | public void setMedName(String medName) { | ||
23 | this.medName = medName; | ||
24 | } | ||
25 | public String getMedDeptGuid() { | ||
26 | return medDeptGuid; | ||
27 | } | ||
28 | public void setMedDeptGuid(String medDeptGuid) { | ||
29 | this.medDeptGuid = medDeptGuid; | ||
30 | } | ||
31 | public String getMedDeptName() { | ||
32 | return medDeptName; | ||
33 | } | ||
34 | public void setMedDeptName(String medDeptName) { | ||
35 | this.medDeptName = medDeptName; | ||
36 | } | ||
37 | public String getMedStoreGuid() { | ||
38 | return medStoreGuid; | ||
39 | } | ||
40 | public void setMedStoreGuid(String medStoreGuid) { | ||
41 | this.medStoreGuid = medStoreGuid; | ||
42 | } | ||
43 | public String getMedStoreName() { | ||
44 | return medStoreName; | ||
45 | } | ||
46 | public void setMedStoreName(String medStoreName) { | ||
47 | this.medStoreName = medStoreName; | ||
48 | } | ||
49 | public String getSupplierGuid() { | ||
50 | return supplierGuid; | ||
51 | } | ||
52 | public void setSupplierGuid(String supplierGuid) { | ||
53 | this.supplierGuid = supplierGuid; | ||
54 | } | ||
55 | public String getSupplierName() { | ||
56 | return supplierName; | ||
57 | } | ||
58 | public void setSupplierName(String supplierName) { | ||
59 | this.supplierName = supplierName; | ||
60 | } | ||
61 | public Date getBillDate() { | ||
62 | return billDate; | ||
63 | } | ||
64 | public void setBillDate(Date billDate) { | ||
65 | this.billDate = billDate; | ||
66 | } | ||
67 | public String getBillType() { | ||
68 | return billType; | ||
69 | } | ||
70 | public void setBillType(String billType) { | ||
71 | this.billType = billType; | ||
72 | } | ||
73 | public String getCountSum() { | ||
74 | return countSum; | ||
75 | } | ||
76 | public void setCountSum(String countSum) { | ||
77 | this.countSum = countSum; | ||
78 | } | ||
79 | public String getDetailSum() { | ||
80 | return detailSum; | ||
81 | } | ||
82 | public void setDetailSum(String detailSum) { | ||
83 | this.detailSum = detailSum; | ||
84 | } | ||
85 | public String getOperaterName() { | ||
86 | return operaterName; | ||
87 | } | ||
88 | public void setOperaterName(String operaterName) { | ||
89 | this.operaterName = operaterName; | ||
90 | } | ||
91 | public Date getInputDate() { | ||
92 | return inputDate; | ||
93 | } | ||
94 | public void setInputDate(Date inputDate) { | ||
95 | this.inputDate = inputDate; | ||
96 | } | ||
97 | public String getMemo() { | ||
98 | return memo; | ||
99 | } | ||
100 | public void setMemo(String memo) { | ||
101 | this.memo = memo; | ||
102 | } | ||
103 | public Date getCreate_time() { | ||
104 | return create_time; | ||
105 | } | ||
106 | public void setCreate_time(Date create_time) { | ||
107 | this.create_time = create_time; | ||
108 | } | ||
109 | public Date getUpdate_time() { | ||
110 | return update_time; | ||
111 | } | ||
112 | public void setUpdate_time(Date update_time) { | ||
113 | this.update_time = update_time; | ||
114 | } | ||
115 | public List<MedInStoreDetail> getBilldetaillist() { | ||
116 | return billdetaillist; | ||
117 | } | ||
118 | public void setBilldetaillist(List<MedInStoreDetail> billdetaillist) { | ||
119 | this.billdetaillist = billdetaillist; | ||
120 | } | ||
121 | private String id; | ||
122 | |||
123 | public String getId() { | ||
124 | return id; | ||
125 | } | ||
126 | public void setId(String id) { | ||
127 | this.id = id; | ||
128 | } | ||
129 | |||
130 | private String billNo; | ||
131 | private String medGuid; | ||
132 | private String medName; | ||
133 | private String medDeptGuid; | ||
134 | private String medDeptName; | ||
135 | private String medStoreGuid; | ||
136 | private String medStoreName; | ||
137 | private String supplierGuid; | ||
138 | private String supplierName; | ||
139 | private Date billDate; | ||
140 | private String billType; | ||
141 | private String countSum; | ||
142 | private String detailSum; | ||
143 | private String operaterName; | ||
144 | private Date inputDate; | ||
145 | private String memo; | ||
146 | private Date create_time; | ||
147 | private Date update_time; | ||
148 | private List<MedInStoreDetail> billdetaillist; | ||
149 | |||
150 | } |
1 | |||
2 | package com.phxl.common.util; | ||
3 | |||
4 | import java.util.UUID; | ||
5 | |||
6 | /** | ||
7 | * 生成ID、流水号等标识串常用工具类 <br/> | ||
8 | */ | ||
9 | public class IdentifieUtil { | ||
10 | |||
11 | /** | ||
12 | * 获取GuId | ||
13 | * @return String | ||
14 | */ | ||
15 | public static String getGuId(){ | ||
16 | UUID uuid = UUID.randomUUID(); | ||
17 | // 得到对象产生的ID | ||
18 | String guId = uuid.toString(); | ||
19 | // 转换为大写 | ||
20 | guId = guId.toUpperCase(); | ||
21 | // 替换 - | ||
22 | guId = guId.replaceAll("-", ""); | ||
23 | return guId; | ||
24 | } | ||
25 | |||
26 | private final static char[] DIGITS64 = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ-_" | ||
27 | .toCharArray(); | ||
28 | |||
29 | public static String get26GuId() { | ||
30 | UUID u = UUID.randomUUID(); | ||
31 | // 转换为大写 | ||
32 | String guId = toIDString(u.getMostSignificantBits()) + toIDString(u.getLeastSignificantBits()); | ||
33 | guId = guId.toUpperCase(); | ||
34 | if(guId.contains("-") || guId.contains("_")){ | ||
35 | guId = get26GuId(); | ||
36 | } | ||
37 | return guId; | ||
38 | } | ||
39 | |||
40 | private static String toIDString(long l) { | ||
41 | char[] buf = "0000000000000".toCharArray(); // 限定13位长度 | ||
42 | int length = 11; | ||
43 | long least = 63L; // 0x0000003FL | ||
44 | do { | ||
45 | buf[--length] = DIGITS64[(int) (l & least)]; // l & least取低6位 | ||
46 | l >>>= 6; | ||
47 | } while (l != 0); | ||
48 | return new String(buf); | ||
49 | } | ||
50 | |||
51 | /** | ||
52 | * 测试 | ||
53 | */ | ||
54 | public static void main(String[] args) { | ||
55 | System.out.println(getGuId()); | ||
56 | } | ||
57 | } | ||
58 | |||
... | \ No newline at end of file | ... | \ No newline at end of file |
1 | package com.phxl.modules.goods.service.billsettlement; | ||
2 | |||
3 | import java.math.BigDecimal; | ||
4 | import java.util.ArrayList; | ||
5 | import java.util.Date; | ||
6 | import java.util.List; | ||
7 | |||
8 | import org.apache.commons.lang3.StringUtils; | ||
9 | import org.apache.poi.ss.formula.functions.Now; | ||
10 | import org.slf4j.Logger; | ||
11 | import org.slf4j.LoggerFactory; | ||
12 | import org.springframework.beans.factory.annotation.Autowired; | ||
13 | import org.springframework.stereotype.Service; | ||
14 | |||
15 | import com.phxl.common.util.DateUtils; | ||
16 | import com.phxl.common.utils.BaseException; | ||
17 | import com.phxl.common.utils.IdUtil; | ||
18 | import com.phxl.modules.goods.dao.billsettlement.BillSettlementDao; | ||
19 | import com.phxl.modules.goods.dao.billsettlement.BillSettlementDetailDao; | ||
20 | import com.phxl.modules.goods.entity.billsettlement.BillSettlement; | ||
21 | import com.phxl.modules.goods.entity.billsettlement.BillSettlementDetail; | ||
22 | import com.phxl.modules.goods.entity.billsettlement.BillSettlementWithDetail; | ||
23 | |||
24 | |||
25 | @Service | ||
26 | public class BillSettlementService{ | ||
27 | |||
28 | @Autowired | ||
29 | private BillSettlementDao billSettlementDao; | ||
30 | |||
31 | @Autowired | ||
32 | private BillSettlementDetailDao billSettlementDetailDao; | ||
33 | |||
34 | /** | ||
35 | * 日志对象 | ||
36 | */ | ||
37 | protected Logger logger = LoggerFactory.getLogger(getClass()); | ||
38 | |||
39 | public boolean batchSave(List<BillSettlementWithDetail> settlementWithDetails) { | ||
40 | boolean result = true; | ||
41 | try { | ||
42 | checkBillSettlement(settlementWithDetails); | ||
43 | } catch (Exception e) { | ||
44 | throw new BaseException(e.getMessage()); | ||
45 | } | ||
46 | for (BillSettlementWithDetail settlement : settlementWithDetails) { | ||
47 | BillSettlement billSettlement = settlement.getTRSettle(); | ||
48 | List<BillSettlementDetail> details = new ArrayList<BillSettlementDetail>(); | ||
49 | details = settlement.getTRSettle().getTRSettleDetail(); | ||
50 | String id = IdUtil.uuid(); | ||
51 | Integer rowno = 1; | ||
52 | billSettlement.setId(id); | ||
53 | if(details != null && details.size() != 0){ | ||
54 | for (BillSettlementDetail billSettlementDetail : details) { | ||
55 | billSettlementDetail.setSettleBillNo(billSettlement.getSettleBillNo()); | ||
56 | billSettlementDetail.setId(id); | ||
57 | billSettlementDetail.setRowNo(rowno); | ||
58 | billSettlementDetail.setCreate_time(new Date()); | ||
59 | billSettlementDetail.setUpdate_time(new Date()); | ||
60 | rowno ++; | ||
61 | } | ||
62 | billSettlementDao.insert(billSettlement); | ||
63 | billSettlementDetailDao.batchInsert(details); | ||
64 | } | ||
65 | } | ||
66 | return result; | ||
67 | } | ||
68 | |||
69 | |||
70 | private void checkBillSettlement(List<BillSettlementWithDetail> settlementWithDetails) { | ||
71 | if(settlementWithDetails == null || settlementWithDetails.size() == 0){ | ||
72 | logger.error("无相应结算单据信息"); | ||
73 | throw new BaseException("无相应结算单据信息"); | ||
74 | } | ||
75 | for (BillSettlementWithDetail billSettlementWithDetail : settlementWithDetails) { | ||
76 | BillSettlement billSettlement = billSettlementWithDetail.getTRSettle(); | ||
77 | String settleBillNo = billSettlement.getSettleBillNo(); | ||
78 | if (StringUtils.isEmpty(settleBillNo)) { | ||
79 | logger.error("结算单结算单号不能为空"); | ||
80 | throw new BaseException("结算单结算单号不能为空"); | ||
81 | } | ||
82 | Date settleDate = billSettlement.getSettleDate(); | ||
83 | if (settleDate == null) { | ||
84 | logger.error("结算单结算单号:"+settleBillNo+"结算单结算单日期不能为空"); | ||
85 | throw new BaseException("结算单结算单号:"+settleBillNo+"结算单结算单日期不能为空"); | ||
86 | } | ||
87 | List<BillSettlementDetail> details = billSettlement.getTRSettleDetail(); | ||
88 | if(details == null || details.size() == 0){ | ||
89 | logger.error("结算单结算单号:"+settleBillNo+"无相应结算单据明细信息"); | ||
90 | throw new BaseException("结算单结算单号:"+settleBillNo+"无相应结算单据明细信息"); | ||
91 | } | ||
92 | String useBillNo = billSettlement.getUseBillNo(); | ||
93 | if (StringUtils.isEmpty(useBillNo)) { | ||
94 | logger.error("结算单结算单号:"+settleBillNo+","+"结算单发药单据编号不能为空"); | ||
95 | throw new BaseException("结算单结算单号:"+settleBillNo+", "+"结算单明细发药单据编号不能为空"); | ||
96 | } | ||
97 | for (BillSettlementDetail billSettlementDetail : details) { | ||
98 | String detailSettleBillNo = billSettlementDetail.getSettleBillNo(); | ||
99 | if (StringUtils.isEmpty(detailSettleBillNo)) { | ||
100 | logger.error("结算单结算单号:"+settleBillNo+"结算单明细结算单号不能为空"); | ||
101 | throw new BaseException("结算单结算单号:"+settleBillNo+"结算单明细结算单号不能为空"); | ||
102 | } | ||
103 | int rowNo = billSettlementDetail.getRowNo(); | ||
104 | if (rowNo == 0) { | ||
105 | logger.error("结算单结算单号:"+settleBillNo+"结算单明细行号不能为空"); | ||
106 | throw new BaseException("结算单结算单号:"+settleBillNo+"结算单明细行号不能为空"); | ||
107 | } | ||
108 | String purchaser_GoodsCode = billSettlementDetail.getGoodsCode(); | ||
109 | if (StringUtils.isEmpty(purchaser_GoodsCode)) { | ||
110 | logger.error("结算单结算单号:"+settleBillNo+",行号:"+rowNo+"结算单明细采购方_商品编码不能为空"); | ||
111 | throw new BaseException("结算单结算单号:"+settleBillNo+",行号:"+rowNo+"结算单明细采购方_商品编码不能为空"); | ||
112 | } | ||
113 | String purchase_GoodsName = billSettlementDetail.getGoodsName(); | ||
114 | if (StringUtils.isEmpty(purchase_GoodsName)) { | ||
115 | logger.error("结算单结算单号:"+settleBillNo+",行号:"+rowNo+"结算单明细采购方_商品名称不能为空"); | ||
116 | throw new BaseException("结算单结算单号:"+settleBillNo+",行号:"+rowNo+"结算单明细采购方_商品名称不能为空"); | ||
117 | } | ||
118 | BigDecimal purchase_SettleQty = billSettlementDetail.getSettleQty(); | ||
119 | if (purchase_SettleQty == null) { | ||
120 | logger.error("结算单结算单号:"+settleBillNo+",行号:"+rowNo+"结算单明细采购方_结算数量不能为空"); | ||
121 | throw new BaseException("结算单结算单号:"+settleBillNo+",行号:"+rowNo+"结算单明细采购方_结算数量不能为空"); | ||
122 | } | ||
123 | String purchase_Unit = billSettlementDetail.getUnit(); | ||
124 | if (StringUtils.isEmpty(purchase_Unit)) { | ||
125 | logger.error("结算单结算单号:"+settleBillNo+",行号:"+rowNo+"结算单明细采购方_包装单位不能为空"); | ||
126 | throw new BaseException("结算单结算单号:"+settleBillNo+",行号:"+rowNo+"结算单明细采购方_包装单位不能为空"); | ||
127 | } | ||
128 | Date productionDate = billSettlementDetail.getProductionDate(); | ||
129 | if (productionDate == null) { | ||
130 | logger.error("结算单结算单号:"+settleBillNo+",行号:"+rowNo+"结算单明细生产日期前不能为空"); | ||
131 | throw new BaseException("结算单结算单号:"+settleBillNo+",行号:"+rowNo+"结算单明细生产日期前不能为空"); | ||
132 | } | ||
133 | Date expireDate = billSettlementDetail.getExpireDate(); | ||
134 | if (expireDate == null) { | ||
135 | logger.error("结算单结算单号:"+settleBillNo+",行号:"+rowNo+"结算单明细有效日期不能为空"); | ||
136 | throw new BaseException("结算单结算单号:"+settleBillNo+",行号:"+rowNo+"结算单明细有效日期不能为空"); | ||
137 | } | ||
138 | } | ||
139 | } | ||
140 | |||
141 | } | ||
142 | |||
143 | |||
144 | |||
145 | } |
1 | <?xml version="1.0" encoding="UTF-8" ?> | ||
2 | <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" > | ||
3 | <mapper namespace="com.phxl.modules.goods.dao.ctdept.HisCtDeptDao"> | ||
4 | |||
5 | <!--BaseResultMap --> | ||
6 | <resultMap id="BaseResultMap" | ||
7 | type="com.phxl.modules.goods.entity.ctdept.HisCtDept"> | ||
8 | <id column="id" property="id" jdbcType="BIGINT" /> | ||
9 | <result column="hdept_code" property="hdeptCode" jdbcType="VARCHAR" /> | ||
10 | <result column="hdept_name" property="hdeptName" jdbcType="VARCHAR" /> | ||
11 | <result column="help_code" property="helpCode" jdbcType="VARCHAR" /> | ||
12 | <result column="upper_GUID" property="upperGUID" jdbcType="VARCHAR" /> | ||
13 | <result column="is_order_right" property="isOrderRight" jdbcType="VARCHAR" /> | ||
14 | <result column="category" property="category" jdbcType="VARCHAR" /> | ||
15 | <result column="director" property="director" jdbcType="VARCHAR" /> | ||
16 | <result column="state" property="state" jdbcType="VARCHAR" /> | ||
17 | <result column="is_last_level" property="isLastLevel" jdbcType="VARCHAR" /> | ||
18 | <result column="create_time" property="create_time" jdbcType="TIMESTAMP" /> | ||
19 | <result column="update_time" property="update_time" jdbcType="TIMESTAMP" /> | ||
20 | </resultMap> | ||
21 | |||
22 | <!--Base_Column_List --> | ||
23 | <sql id="Base_Column_List">id,hdept_code,hdept_name,help_code,upper_GUID,is_order_right,category,director,state,is_last_level,create_time,update_time</sql> | ||
24 | |||
25 | <!-- 批量查询 --> | ||
26 | <select id="batchSelect" resultMap="BaseResultMap" parameterType="java.util.HashMap"> | ||
27 | select | ||
28 | <include refid="Base_Column_List" /> | ||
29 | from med_hli_dept | ||
30 | <if test="ctcpCodes != null"> | ||
31 | where hdept_code in | ||
32 | <foreach item="item" index="index" collection="ctcpCodes" open="(" separator="," close=")"> | ||
33 | #{item} | ||
34 | </foreach> | ||
35 | </if> | ||
36 | </select> | ||
37 | |||
38 | <!--批量插入 --> | ||
39 | <insert id="batchInsert" parameterType="list"> | ||
40 | insert into med_hli_dept (id,hdept_code,hdept_name,help_code,upper_GUID,is_order_right,category,director,state,is_last_level,create_time,update_time) | ||
41 | values | ||
42 | <foreach collection ="list" item="obj" separator =","> | ||
43 | <trim prefix=" (" suffix=")" suffixOverrides=","> | ||
44 | #{obj.id}, | ||
45 | #{obj.hdeptCode}, | ||
46 | #{obj.hdeptName}, | ||
47 | #{obj.helpCode}, | ||
48 | #{obj.upperGUID}, | ||
49 | #{obj.isOrderRight}, | ||
50 | #{obj.category}, | ||
51 | #{obj.director}, | ||
52 | #{obj.state}, | ||
53 | #{obj.isLastLevel}, | ||
54 | #{obj.create_time}, | ||
55 | #{obj.update_time} | ||
56 | </trim> | ||
57 | </foreach> | ||
58 | </insert> | ||
59 | |||
60 | <update id="batchUpdate" parameterType="list"> | ||
61 | update med_hli_dept | ||
62 | <trim prefix="set" suffixOverrides=","> | ||
63 | <trim prefix="hdept_code=case" suffix="end,"> | ||
64 | <foreach collection="list" item="obj" index="index"> | ||
65 | <if test="obj.hdeptCode != null and obj.hdeptCode != ''"> | ||
66 | when id = #{obj.id} | ||
67 | then #{obj.hdeptCode,jdbcType=VARCHAR} | ||
68 | </if> | ||
69 | </foreach> | ||
70 | </trim> | ||
71 | <trim prefix="hdept_name=case" suffix="end,"> | ||
72 | <foreach collection="list" item="obj" index="index"> | ||
73 | <if test="obj.hdeptName != null and obj.hdeptName != ''"> | ||
74 | when id = #{obj.id} | ||
75 | then | ||
76 | #{obj.hdeptName,jdbcType=VARCHAR} | ||
77 | </if> | ||
78 | </foreach> | ||
79 | </trim> | ||
80 | <trim prefix="help_code=case" suffix="end,"> | ||
81 | <foreach collection="list" item="obj" index="index"> | ||
82 | <if test="obj.helpCode != null and obj.helpCode != ''"> | ||
83 | when id = #{obj.id} | ||
84 | then #{obj.helpCode,jdbcType=VARCHAR} | ||
85 | </if> | ||
86 | </foreach> | ||
87 | </trim> | ||
88 | <trim prefix="upper_GUID=case" suffix="end,"> | ||
89 | <foreach collection="list" item="obj" index="index"> | ||
90 | <if test="obj.upperGUID != null and obj.upperGUID != ''"> | ||
91 | when id = #{obj.id} | ||
92 | then #{obj.upperGUID,jdbcType=VARCHAR} | ||
93 | </if> | ||
94 | </foreach> | ||
95 | </trim> | ||
96 | <trim prefix="is_order_right=case" suffix="end,"> | ||
97 | <foreach collection="list" item="obj" index="index"> | ||
98 | <if test="obj.isOrderRight != null and obj.isOrderRight != ''"> | ||
99 | when id = #{obj.id} | ||
100 | then #{obj.isOrderRight,jdbcType=VARCHAR} | ||
101 | </if> | ||
102 | </foreach> | ||
103 | </trim> | ||
104 | <trim prefix="category=case" suffix="end,"> | ||
105 | <foreach collection="list" item="obj" index="index"> | ||
106 | <if test="obj.category != null and obj.category != ''"> | ||
107 | when id = #{obj.id} | ||
108 | then #{obj.category,jdbcType=VARCHAR} | ||
109 | </if> | ||
110 | </foreach> | ||
111 | </trim> | ||
112 | <trim prefix="director=case" suffix="end,"> | ||
113 | <foreach collection="list" item="obj" index="index"> | ||
114 | <if test="obj.director != null and obj.director != ''"> | ||
115 | when id = #{obj.id} | ||
116 | then #{obj.director,jdbcType=VARCHAR} | ||
117 | </if> | ||
118 | </foreach> | ||
119 | </trim> | ||
120 | <trim prefix="state=case" suffix="end,"> | ||
121 | <foreach collection="list" item="obj" index="index"> | ||
122 | <if test="obj.state != null and obj.state != ''"> | ||
123 | when id = #{obj.id} | ||
124 | then #{obj.state,jdbcType=VARCHAR} | ||
125 | </if> | ||
126 | </foreach> | ||
127 | </trim> | ||
128 | <trim prefix="is_last_level=case" suffix="end,"> | ||
129 | <foreach collection="list" item="obj" index="index"> | ||
130 | <if test="obj.isLastLevel != null and obj.isLastLevel != ''"> | ||
131 | when id = #{obj.id} | ||
132 | then #{obj.isLastLevel,jdbcType=VARCHAR} | ||
133 | </if> | ||
134 | </foreach> | ||
135 | </trim> | ||
136 | <trim prefix="create_time=case" suffix="end,"> | ||
137 | <foreach collection="list" item="obj" index="index"> | ||
138 | <if test="obj.create_time != null"> | ||
139 | when id = #{obj.id} | ||
140 | then #{obj.create_time,jdbcType=DATE} | ||
141 | </if> | ||
142 | </foreach> | ||
143 | </trim> | ||
144 | <trim prefix="update_time=case" suffix="end,"> | ||
145 | <foreach collection="list" item="obj" index="index"> | ||
146 | <if test="obj.update_time != null"> | ||
147 | when id = #{obj.id} | ||
148 | then #{obj.update_time,jdbcType=DATE} | ||
149 | </if> | ||
150 | </foreach> | ||
151 | </trim> | ||
152 | </trim> | ||
153 | where | ||
154 | <foreach collection="list" separator="or" item="obj" index="index"> | ||
155 | id | ||
156 | = #{obj.id} | ||
157 | </foreach> | ||
158 | </update> | ||
159 | |||
160 | |||
161 | </mapper> | ||
... | \ No newline at end of file | ... | \ No newline at end of file |
1 | /** | ||
2 | * Copyright © 2012-2016 <a href="https://github.com/phxl/medicinal">medicinal</a> All rights reserved. | ||
3 | */ | ||
4 | package com.phxl.common.util; | ||
5 | |||
6 | import java.io.File; | ||
7 | import java.io.IOException; | ||
8 | import java.util.HashMap; | ||
9 | import java.util.Map; | ||
10 | |||
11 | import org.apache.commons.lang3.StringUtils; | ||
12 | import org.springframework.core.io.DefaultResourceLoader; | ||
13 | |||
14 | |||
15 | |||
16 | |||
17 | /** | ||
18 | * 全局配置类 | ||
19 | * @author phxl | ||
20 | * @version 2014-06-25 | ||
21 | */ | ||
22 | public class Global { | ||
23 | |||
24 | /** | ||
25 | * 当前对象实例 | ||
26 | */ | ||
27 | private static Global global = new Global(); | ||
28 | |||
29 | /** | ||
30 | * 保存全局属性值 | ||
31 | */ | ||
32 | private static Map<String, String> map = new HashMap<String,String>(); | ||
33 | |||
34 | /** | ||
35 | * 属性文件加载对象 | ||
36 | */ | ||
37 | private static PropertiesLoader loader = new PropertiesLoader("config.properties"); | ||
38 | |||
39 | /** | ||
40 | * 显示/隐藏 | ||
41 | */ | ||
42 | public static final String SHOW = "1"; | ||
43 | public static final String HIDE = "0"; | ||
44 | |||
45 | /** | ||
46 | * 是/否 | ||
47 | */ | ||
48 | public static final String YES = "1"; | ||
49 | public static final String NO = "0"; | ||
50 | |||
51 | /** | ||
52 | * 对/错 | ||
53 | */ | ||
54 | public static final String TRUE = "true"; | ||
55 | public static final String FALSE = "false"; | ||
56 | |||
57 | /** | ||
58 | * 上传文件基础虚拟路径 | ||
59 | */ | ||
60 | public static final String USERFILES_BASE_URL = "/userfiles/"; | ||
61 | |||
62 | /** | ||
63 | * 获取当前对象实例 | ||
64 | */ | ||
65 | public static Global getInstance() { | ||
66 | return global; | ||
67 | } | ||
68 | |||
69 | /** | ||
70 | * 获取配置 | ||
71 | * @see ${fns:getConfig('adminPath')} | ||
72 | */ | ||
73 | public static String getConfig(String key) { | ||
74 | String value = map.get(key); | ||
75 | if (value == null){ | ||
76 | value = loader.getProperty(key); | ||
77 | map.put(key, value != null ? value : StringUtils.EMPTY); | ||
78 | } | ||
79 | return value; | ||
80 | } | ||
81 | |||
82 | /** | ||
83 | * 获取管理端根路径 | ||
84 | */ | ||
85 | public static String getAdminPath() { | ||
86 | return getConfig("adminPath"); | ||
87 | } | ||
88 | |||
89 | /** | ||
90 | * 获取前端根路径 | ||
91 | */ | ||
92 | public static String getFrontPath() { | ||
93 | return getConfig("frontPath"); | ||
94 | } | ||
95 | |||
96 | /** | ||
97 | * 获取URL后缀 | ||
98 | */ | ||
99 | public static String getUrlSuffix() { | ||
100 | return getConfig("urlSuffix"); | ||
101 | } | ||
102 | |||
103 | /** | ||
104 | * 是否是演示模式,演示模式下不能修改用户、角色、密码、菜单、授权 | ||
105 | */ | ||
106 | public static Boolean isDemoMode() { | ||
107 | String dm = getConfig("demoMode"); | ||
108 | return "true".equals(dm) || "1".equals(dm); | ||
109 | } | ||
110 | |||
111 | /** | ||
112 | * 在修改系统用户和角色时是否同步到Activiti | ||
113 | */ | ||
114 | public static Boolean isSynActivitiIndetity() { | ||
115 | String dm = getConfig("activiti.isSynActivitiIndetity"); | ||
116 | return "true".equals(dm) || "1".equals(dm); | ||
117 | } | ||
118 | |||
119 | /** | ||
120 | * 页面获取常量 | ||
121 | * @see ${fns:getConst('YES')} | ||
122 | */ | ||
123 | public static Object getConst(String field) { | ||
124 | try { | ||
125 | return Global.class.getField(field).get(null); | ||
126 | } catch (Exception e) { | ||
127 | // 异常代表无配置,这里什么也不做 | ||
128 | } | ||
129 | return null; | ||
130 | } | ||
131 | |||
132 | /** | ||
133 | * 获取上传文件的根目录 | ||
134 | * @return | ||
135 | */ | ||
136 | public static String getUserfilesBaseDir() { | ||
137 | String dir = getConfig("userfiles.basedir"); | ||
138 | /* if (StringUtils.isBlank(dir)){ | ||
139 | try { | ||
140 | dir = ServletContextFactory.getServletContext().getRealPath("/"); | ||
141 | } catch (Exception e) { | ||
142 | return ""; | ||
143 | } | ||
144 | } | ||
145 | if(!dir.endsWith("/")) { | ||
146 | dir += "/"; | ||
147 | }*/ | ||
148 | // System.out.println("userfiles.basedir: " + dir); | ||
149 | return dir; | ||
150 | } | ||
151 | |||
152 | /** | ||
153 | * 获取工程路径 | ||
154 | * @return | ||
155 | */ | ||
156 | public static String getProjectPath(){ | ||
157 | // 如果配置了工程路径,则直接返回,否则自动获取。 | ||
158 | String projectPath = Global.getConfig("projectPath"); | ||
159 | if (StringUtils.isNotBlank(projectPath)){ | ||
160 | return projectPath; | ||
161 | } | ||
162 | try { | ||
163 | File file = new DefaultResourceLoader().getResource("").getFile(); | ||
164 | if (file != null){ | ||
165 | while(true){ | ||
166 | File f = new File(file.getPath() + File.separator + "src" + File.separator + "main"); | ||
167 | if (f == null || f.exists()){ | ||
168 | break; | ||
169 | } | ||
170 | if (file.getParentFile() != null){ | ||
171 | file = file.getParentFile(); | ||
172 | }else{ | ||
173 | break; | ||
174 | } | ||
175 | } | ||
176 | projectPath = file.toString(); | ||
177 | } | ||
178 | } catch (IOException e) { | ||
179 | e.printStackTrace(); | ||
180 | } | ||
181 | return projectPath; | ||
182 | } | ||
183 | |||
184 | } |
1 | /** | ||
2 | * Project Name:HSCM File Name:SystemConfig.java Package Name:com.phxl.hscm.common.util Date:2015年6月29日下午5:13:50 Copyright (c) 2015, PHXL All Rights Reserved. | ||
3 | */ | ||
4 | |||
5 | package com.phxl.common.util; | ||
6 | |||
7 | import org.apache.commons.collections.MapUtils; | ||
8 | import org.apache.commons.lang.StringUtils; | ||
9 | import org.slf4j.Logger; | ||
10 | import org.slf4j.LoggerFactory; | ||
11 | import org.springframework.core.io.Resource; | ||
12 | import org.springframework.core.io.support.PathMatchingResourcePatternResolver; | ||
13 | import org.springframework.stereotype.Component; | ||
14 | |||
15 | import javax.annotation.PostConstruct; | ||
16 | import java.io.IOException; | ||
17 | import java.util.Map; | ||
18 | import java.util.Properties; | ||
19 | import java.util.TreeMap; | ||
20 | |||
21 | |||
22 | /** | ||
23 | * 系统配置工具<br/> | ||
24 | * 加载系统Properties配置文件至内存中<br/> | ||
25 | * @Date 2015年6月29日 下午5:13:50 | ||
26 | * @author shijingbang | ||
27 | * @version 1.0 | ||
28 | * @since JDK 1.6 | ||
29 | */ | ||
30 | @Component | ||
31 | public class SystemConfig { | ||
32 | private static final Logger logger = LoggerFactory.getLogger(SystemConfig.class); | ||
33 | private static final Properties properties = new Properties(); | ||
34 | |||
35 | @PostConstruct | ||
36 | public void init() throws IOException { | ||
37 | PathMatchingResourcePatternResolver resolver = new PathMatchingResourcePatternResolver(this.getClass().getClassLoader()); | ||
38 | //Resource[] resources = resolver.getResources("classpath:**/spring/*.properties"); | ||
39 | Resource[] resources = resolver.getResources("classpath:**/*.properties"); | ||
40 | for (Resource resource : resources) { | ||
41 | if (logger.isDebugEnabled()) { | ||
42 | logger.debug("加载Properties配置文件{}", resource.getFilename()); | ||
43 | } | ||
44 | properties.load(resource.getInputStream()); | ||
45 | } | ||
46 | if(logger.isDebugEnabled()){ | ||
47 | Map<String, Object> configuration = MapUtils.typedSortedMap(new TreeMap(properties), String.class, Object.class); | ||
48 | //logger.debug("****************系统配置参数表****************\n{}", JSONUtils.toPrettyJsonLoosely(configuration)); | ||
49 | } | ||
50 | } | ||
51 | |||
52 | /** | ||
53 | * 根据key找出value值 | ||
54 | * @param key 键 | ||
55 | * @return String | ||
56 | * @author shijingbang | ||
57 | */ | ||
58 | public static String getProperty(String key) { | ||
59 | return properties.getProperty(key); | ||
60 | } | ||
61 | |||
62 | /** | ||
63 | * 根据key找出value值.没有找到则返回第二个参数的值 | ||
64 | * @param key 键 | ||
65 | * @param defaultValue 默认值 | ||
66 | * @return String | ||
67 | * @author shijingbang | ||
68 | */ | ||
69 | public static String getProperty(String key, String defaultValue) { | ||
70 | return properties.getProperty(key, defaultValue); | ||
71 | } | ||
72 | |||
73 | /** | ||
74 | * 获取整数参数值 | ||
75 | * @param key | ||
76 | * @return Integer | ||
77 | */ | ||
78 | public static Integer getIntProperty(String key){ | ||
79 | String value = properties.getProperty(key); | ||
80 | if(StringUtils.isNotBlank(value)){ | ||
81 | return Integer.parseInt(value); | ||
82 | } | ||
83 | return null; | ||
84 | } | ||
85 | |||
86 | /** | ||
87 | * 获取整数参数值,必需指定默认值 | ||
88 | * @param key | ||
89 | * @param defaultValue | ||
90 | * @return int | ||
91 | */ | ||
92 | public static int getIntProperty(String key, Integer defaultValue){ | ||
93 | //LocalAssert.notNull(defaultValue, "defaultValue,不能为空"); | ||
94 | String value = properties.getProperty(key); | ||
95 | if(StringUtils.isBlank(value)){ | ||
96 | return defaultValue; | ||
97 | } | ||
98 | return Integer.parseInt(value); | ||
99 | } | ||
100 | |||
101 | /** | ||
102 | * 检查是否包含指定key | ||
103 | * @param key | ||
104 | * @return boolean | ||
105 | * @author shijingbang | ||
106 | */ | ||
107 | public static boolean containsKey(Object key) { | ||
108 | return properties.containsKey(key); | ||
109 | } | ||
110 | |||
111 | /** | ||
112 | * 检查系统环境是否包含指定值 | ||
113 | * @param value | ||
114 | * @return boolean | ||
115 | * @author shijingbang | ||
116 | */ | ||
117 | public static boolean containsValue(Object value) { | ||
118 | return properties.containsValue(value); | ||
119 | } | ||
120 | } |
1 | /** | ||
2 | * Copyright © 2012-2016 <a href="https://github.com/phxl/medicinal">medicinal</a> All rights reserved. | ||
3 | */ | ||
4 | package com.phxl.common.util; | ||
5 | |||
6 | import java.io.IOException; | ||
7 | import java.util.TimeZone; | ||
8 | |||
9 | import org.apache.commons.lang3.StringEscapeUtils; | ||
10 | import org.apache.commons.lang3.StringUtils; | ||
11 | import org.slf4j.Logger; | ||
12 | import org.slf4j.LoggerFactory; | ||
13 | |||
14 | import com.fasterxml.jackson.annotation.JsonInclude.Include; | ||
15 | import com.fasterxml.jackson.core.JsonGenerator; | ||
16 | import com.fasterxml.jackson.core.JsonParser.Feature; | ||
17 | import com.fasterxml.jackson.core.JsonProcessingException; | ||
18 | import com.fasterxml.jackson.databind.DeserializationFeature; | ||
19 | import com.fasterxml.jackson.databind.JavaType; | ||
20 | import com.fasterxml.jackson.databind.JsonSerializer; | ||
21 | import com.fasterxml.jackson.databind.ObjectMapper; | ||
22 | import com.fasterxml.jackson.databind.SerializationFeature; | ||
23 | import com.fasterxml.jackson.databind.SerializerProvider; | ||
24 | import com.fasterxml.jackson.databind.module.SimpleModule; | ||
25 | import com.fasterxml.jackson.databind.util.JSONPObject; | ||
26 | |||
27 | /** | ||
28 | * 简单封装Jackson,实现JSON String<->Java Object的Mapper. | ||
29 | * 封装不同的输出风格, 使用不同的builder函数创建实例. | ||
30 | * @author phxl | ||
31 | * @version 2013-11-15 | ||
32 | */ | ||
33 | public class JsonMapper extends ObjectMapper { | ||
34 | |||
35 | private static final long serialVersionUID = 1L; | ||
36 | |||
37 | private static Logger logger = LoggerFactory.getLogger(JsonMapper.class); | ||
38 | |||
39 | private static JsonMapper mapper; | ||
40 | |||
41 | public JsonMapper() { | ||
42 | this(Include.NON_EMPTY); | ||
43 | } | ||
44 | |||
45 | public JsonMapper(Include include) { | ||
46 | |||
47 | // 设置输出时包含属性的风格 | ||
48 | if (include != null) { | ||
49 | this.setSerializationInclusion(include); | ||
50 | } | ||
51 | // 允许单引号、允许不带引号的字段名称 | ||
52 | this.enableSimple(); | ||
53 | // 设置输入时忽略在JSON字符串中存在但Java对象实际没有的属性 | ||
54 | this.disable(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES); | ||
55 | // 空值处理为空串 | ||
56 | this.getSerializerProvider().setNullValueSerializer(new JsonSerializer<Object>(){ | ||
57 | @Override | ||
58 | public void serialize(Object value, JsonGenerator jgen, | ||
59 | SerializerProvider provider) throws IOException, | ||
60 | JsonProcessingException { | ||
61 | jgen.writeString(""); | ||
62 | } | ||
63 | }); | ||
64 | // 进行HTML解码。 | ||
65 | this.registerModule(new SimpleModule().addSerializer(String.class, new JsonSerializer<String>(){ | ||
66 | @Override | ||
67 | public void serialize(String value, JsonGenerator jgen, | ||
68 | SerializerProvider provider) throws IOException, | ||
69 | JsonProcessingException { | ||
70 | jgen.writeString(StringEscapeUtils.unescapeHtml4(value)); | ||
71 | } | ||
72 | })); | ||
73 | // 设置时区 | ||
74 | this.setTimeZone(TimeZone.getDefault());//getTimeZone("GMT+8:00") | ||
75 | |||
76 | /* try { | ||
77 | this.writerWithType(Void.TYPE).writeValueAsBytes(null); | ||
78 | } catch (JsonProcessingException e) { | ||
79 | e.printStackTrace(); | ||
80 | }*/ | ||
81 | } | ||
82 | |||
83 | /** | ||
84 | * 创建只输出非Null且非Empty(如List.isEmpty)的属性到Json字符串的Mapper,建议在外部接口中使用. | ||
85 | */ | ||
86 | public static JsonMapper getInstance() { | ||
87 | if (mapper == null){ | ||
88 | mapper = new JsonMapper().enableSimple(); | ||
89 | } | ||
90 | return mapper; | ||
91 | } | ||
92 | |||
93 | /** | ||
94 | * 创建只输出初始值被改变的属性到Json字符串的Mapper, 最节约的存储方式,建议在内部接口中使用。 | ||
95 | */ | ||
96 | public static JsonMapper nonDefaultMapper() { | ||
97 | if (mapper == null){ | ||
98 | mapper = new JsonMapper(Include.NON_DEFAULT); | ||
99 | } | ||
100 | return mapper; | ||
101 | } | ||
102 | |||
103 | /** | ||
104 | * Object可以是POJO,也可以是Collection或数组。 | ||
105 | * 如果对象为Null, 返回"null". | ||
106 | * 如果集合为空集合, 返回"[]". | ||
107 | */ | ||
108 | public String toJson(Object object) { | ||
109 | try { | ||
110 | return this.writeValueAsString(object); | ||
111 | } catch (IOException e) { | ||
112 | logger.warn("write to json string error:" + object, e); | ||
113 | return null; | ||
114 | } | ||
115 | } | ||
116 | |||
117 | /** | ||
118 | * 反序列化POJO或简单Collection如List<String>. | ||
119 | * | ||
120 | * 如果JSON字符串为Null或"null"字符串, 返回Null. | ||
121 | * 如果JSON字符串为"[]", 返回空集合. | ||
122 | * | ||
123 | * 如需反序列化复杂Collection如List<MyBean>, 请使用fromJson(String,JavaType) | ||
124 | * @see #fromJson(String, JavaType) | ||
125 | */ | ||
126 | public <T> T fromJson(String jsonString, Class<T> clazz) { | ||
127 | if (StringUtils.isEmpty(jsonString)) { | ||
128 | return null; | ||
129 | } | ||
130 | try { | ||
131 | return this.readValue(jsonString, clazz); | ||
132 | } catch (IOException e) { | ||
133 | logger.warn("parse json string error:" + jsonString, e); | ||
134 | return null; | ||
135 | } | ||
136 | } | ||
137 | |||
138 | /** | ||
139 | * 反序列化复杂Collection如List<Bean>, 先使用函數createCollectionType构造类型,然后调用本函数. | ||
140 | * @see #createCollectionType(Class, Class...) | ||
141 | */ | ||
142 | @SuppressWarnings("unchecked") | ||
143 | public <T> T fromJson(String jsonString, JavaType javaType) { | ||
144 | if (StringUtils.isEmpty(jsonString)) { | ||
145 | return null; | ||
146 | } | ||
147 | try { | ||
148 | return (T) this.readValue(jsonString, javaType); | ||
149 | } catch (IOException e) { | ||
150 | logger.warn("parse json string error:" + jsonString, e); | ||
151 | return null; | ||
152 | } | ||
153 | } | ||
154 | |||
155 | /** | ||
156 | * 構造泛型的Collection Type如: | ||
157 | * ArrayList<MyBean>, 则调用constructCollectionType(ArrayList.class,MyBean.class) | ||
158 | * HashMap<String,MyBean>, 则调用(HashMap.class,String.class, MyBean.class) | ||
159 | */ | ||
160 | public JavaType createCollectionType(Class<?> collectionClass, Class<?>... elementClasses) { | ||
161 | return this.getTypeFactory().constructParametricType(collectionClass, elementClasses); | ||
162 | } | ||
163 | |||
164 | /** | ||
165 | * 當JSON裡只含有Bean的部分屬性時,更新一個已存在Bean,只覆蓋該部分的屬性. | ||
166 | */ | ||
167 | @SuppressWarnings("unchecked") | ||
168 | public <T> T update(String jsonString, T object) { | ||
169 | try { | ||
170 | return (T) this.readerForUpdating(object).readValue(jsonString); | ||
171 | } catch (JsonProcessingException e) { | ||
172 | logger.warn("update json string:" + jsonString + " to object:" + object + " error.", e); | ||
173 | } catch (IOException e) { | ||
174 | logger.warn("update json string:" + jsonString + " to object:" + object + " error.", e); | ||
175 | } | ||
176 | return null; | ||
177 | } | ||
178 | |||
179 | /** | ||
180 | * 輸出JSONP格式數據. | ||
181 | */ | ||
182 | public String toJsonP(String functionName, Object object) { | ||
183 | return toJson(new JSONPObject(functionName, object)); | ||
184 | } | ||
185 | |||
186 | /** | ||
187 | * 設定是否使用Enum的toString函數來讀寫Enum, | ||
188 | * 為False時時使用Enum的name()函數來讀寫Enum, 默認為False. | ||
189 | * 注意本函數一定要在Mapper創建後, 所有的讀寫動作之前調用. | ||
190 | */ | ||
191 | public JsonMapper enableEnumUseToString() { | ||
192 | this.enable(SerializationFeature.WRITE_ENUMS_USING_TO_STRING); | ||
193 | this.enable(DeserializationFeature.READ_ENUMS_USING_TO_STRING); | ||
194 | return this; | ||
195 | } | ||
196 | |||
197 | /** | ||
198 | * 允许单引号 | ||
199 | * 允许不带引号的字段名称 | ||
200 | */ | ||
201 | public JsonMapper enableSimple() { | ||
202 | this.configure(Feature.ALLOW_SINGLE_QUOTES, true); | ||
203 | this.configure(Feature.ALLOW_UNQUOTED_FIELD_NAMES, true); | ||
204 | return this; | ||
205 | } | ||
206 | |||
207 | /** | ||
208 | * 取出Mapper做进一步的设置或使用其他序列化API. | ||
209 | */ | ||
210 | public ObjectMapper getMapper() { | ||
211 | return this; | ||
212 | } | ||
213 | |||
214 | /** | ||
215 | * 对象转换为JSON字符串 | ||
216 | * @param object | ||
217 | * @return | ||
218 | */ | ||
219 | public static String toJsonString(Object object){ | ||
220 | return JsonMapper.getInstance().toJson(object); | ||
221 | } | ||
222 | |||
223 | /** | ||
224 | * JSON字符串转换为对象 | ||
225 | * @param jsonString | ||
226 | * @param clazz | ||
227 | * @return | ||
228 | */ | ||
229 | public static Object fromJsonString(String jsonString, Class<?> clazz){ | ||
230 | return JsonMapper.getInstance().fromJson(jsonString, clazz); | ||
231 | } | ||
232 | |||
233 | |||
234 | |||
235 | |||
236 | |||
237 | /** | ||
238 | * 测试 | ||
239 | */ | ||
240 | public static void main(String[] args) { | ||
241 | /*List<Map<String, Object>> list = Lists.newArrayList(); | ||
242 | Map<String, Object> map = Maps.newHashMap(); | ||
243 | map.put("id", 1); | ||
244 | map.put("pId", -1); | ||
245 | map.put("name", "根节点"); | ||
246 | list.add(map); | ||
247 | map = Maps.newHashMap(); | ||
248 | map.put("id", 2); | ||
249 | map.put("pId", 1); | ||
250 | map.put("name", "你好"); | ||
251 | map.put("open", true); | ||
252 | list.add(map); | ||
253 | String json = JsonMapper.getInstance().toJson(list); | ||
254 | System.out.println(json);*/ | ||
255 | |||
256 | } | ||
257 | |||
258 | } |
1 | package com.phxl.modules.goods.entity.billback; | ||
2 | |||
3 | import com.alibaba.fastjson.annotation.JSONField; | ||
4 | |||
5 | /** | ||
6 | * @ClassName BillBackWithDetail | ||
7 | * @Description TODO | ||
8 | * @Author json | ||
9 | * @Date 2018/11/1 19:22 | ||
10 | **/ | ||
11 | public class BillBackWithDetail { | ||
12 | |||
13 | @JSONField(name = "TRMedRPI") | ||
14 | private BillBack TRMedRPI; | ||
15 | |||
16 | public BillBack getTRMedRPI() { | ||
17 | return TRMedRPI; | ||
18 | } | ||
19 | |||
20 | public void setTRMedRPI(BillBack TRMedRPI) { | ||
21 | this.TRMedRPI = TRMedRPI; | ||
22 | } | ||
23 | } |
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff could not be displayed because it is too large.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
.svn/wc.db
deleted
100644 → 0
No preview for this file type
.svn/wc.db-journal
deleted
100644 → 0
This diff is collapsed.
Click to expand it.
target/antrun/build-main.xml
deleted
100644 → 0
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
No preview for this file type
target/classes/com/phxl/common/constants/HisResponseConstant$ResponseBodyMsg.class
deleted
100644 → 0
No preview for this file type
target/classes/com/phxl/common/constants/HisResponseConstant$ResponseHeaderMsg.class
deleted
100644 → 0
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
target/classes/com/phxl/common/response/PlatFormResponseConstant$ResponseBodyMsg.class
deleted
100644 → 0
No preview for this file type
target/classes/com/phxl/common/response/PlatFormResponseConstant$ResponseHeaderMsg.class
deleted
100644 → 0
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
target/classes/com/phxl/modules/goods/dao/billsettlement/BillSettlementDetailDao.class
deleted
100644 → 0
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
target/classes/com/phxl/modules/goods/dao/invoiceback/SuInvoiceBackDetailDao.class
deleted
100644 → 0
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
target/classes/com/phxl/modules/goods/entity/billsettlement/BillSettlementDetail.class
deleted
100644 → 0
No preview for this file type
target/classes/com/phxl/modules/goods/entity/billsettlement/BillSettlementWithDetail.class
deleted
100644 → 0
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
target/classes/com/phxl/modules/goods/entity/invoiceback/SuInvoiceBackDetail.class
deleted
100644 → 0
No preview for this file type
target/classes/com/phxl/modules/goods/entity/invoiceback/SuInvoiceBackWithDetail.class
deleted
100644 → 0
No preview for this file type
No preview for this file type
No preview for this file type
target/classes/com/phxl/modules/goods/entity/medinstore/MedInStoreWithDetail.class
deleted
100644 → 0
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
target/classes/com/phxl/modules/goods/entity/suoutstore/SuOutStoreWithDetail.class
deleted
100644 → 0
No preview for this file type
No preview for this file type
target/classes/com/phxl/modules/goods/entity/supplierstock/SupplierStockList.class
deleted
100644 → 0
No preview for this file type
No preview for this file type
No preview for this file type
target/classes/com/phxl/modules/goods/service/billsettlement/BillSettlementService.class
deleted
100644 → 0
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
target/classes/com/phxl/modules/goods/service/interfaceLog/InterfaceLogService.class
deleted
100644 → 0
No preview for this file type
target/classes/com/phxl/modules/goods/service/invoiceback/SuInvoiceBackService.class
deleted
100644 → 0
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
target/classes/com/phxl/modules/goods/service/supplierstock/SupplierStockService.class
deleted
100644 → 0
No preview for this file type
target/classes/com/phxl/modules/goods/service/supplygoods/MedSupplyGoodsService.class
deleted
100644 → 0
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
target/classes/config.properties
deleted
100644 → 0
This diff is collapsed.
Click to expand it.
target/classes/logback.xml
deleted
100644 → 0
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
target/classes/mybatis-config.xml
deleted
100644 → 0
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
target/classes/spring/appconfig.xml
deleted
100644 → 0
This diff is collapsed.
Click to expand it.
target/classes/spring/appexclude.xml
deleted
100644 → 0
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
target/m2e-wtp/web-resources/META-INF/maven/com.phxl/medicinal-supplier/pom.properties
deleted
100644 → 0
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
target/maven-archiver/pom.properties
deleted
100644 → 0
This diff is collapsed.
Click to expand it.
target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst
deleted
100644 → 0
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/inputFiles.lst
deleted
100644 → 0
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
target/medicinal-supplier/WEB-INF/classes/com/phxl/common/constants/HisRequestConstant.class
deleted
100644 → 0
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
target/medicinal-supplier/WEB-INF/classes/com/phxl/common/constants/PlatformConstant.class
deleted
100644 → 0
No preview for this file type
target/medicinal-supplier/WEB-INF/classes/com/phxl/common/filter/SimpleCORSFilter.class
deleted
100644 → 0
No preview for this file type
target/medicinal-supplier/WEB-INF/classes/com/phxl/common/response/PlatFormResponse.class
deleted
100644 → 0
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
target/medicinal-supplier/WEB-INF/classes/com/phxl/common/util/IdentifieUtil.class
deleted
100644 → 0
No preview for this file type
No preview for this file type
target/medicinal-supplier/WEB-INF/classes/com/phxl/common/util/JsonDateDeserializer.class
deleted
100644 → 0
No preview for this file type
target/medicinal-supplier/WEB-INF/classes/com/phxl/common/util/JsonMapper$1.class
deleted
100644 → 0
No preview for this file type
target/medicinal-supplier/WEB-INF/classes/com/phxl/common/util/JsonMapper$2.class
deleted
100644 → 0
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
target/medicinal-supplier/WEB-INF/classes/com/phxl/common/util/PdfReportHeaderFooter.class
deleted
100644 → 0
No preview for this file type
target/medicinal-supplier/WEB-INF/classes/com/phxl/common/util/PropertiesLoader.class
deleted
100644 → 0
No preview for this file type
target/medicinal-supplier/WEB-INF/classes/com/phxl/common/util/SystemConfig.class
deleted
100644 → 0
No preview for this file type
No preview for this file type
target/medicinal-supplier/WEB-INF/classes/com/phxl/common/util/VideoThumbTaker.class
deleted
100644 → 0
No preview for this file type
No preview for this file type
No preview for this file type
target/medicinal-supplier/WEB-INF/classes/com/phxl/common/utils/BaseException.class
deleted
100644 → 0
No preview for this file type
No preview for this file type
target/medicinal-supplier/WEB-INF/classes/com/phxl/common/utils/CookieUtils.class
deleted
100644 → 0
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
target/medicinal-supplier/WEB-INF/classes/com/phxl/common/utils/PropertiesLoader.class
deleted
100644 → 0
No preview for this file type
No preview for this file type
target/medicinal-supplier/WEB-INF/classes/com/phxl/common/utils/SpringContextHolder.class
deleted
100644 → 0
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
target/medicinal-supplier/WEB-INF/classes/com/phxl/modules/wechat/constants/WeChatEnum.class
deleted
100644 → 0
No preview for this file type
No preview for this file type
target/medicinal-supplier/WEB-INF/classes/com/phxl/modules/wechat/dto/WeChatDto.class
deleted
100644 → 0
No preview for this file type
target/medicinal-supplier/WEB-INF/classes/com/phxl/modules/wechat/entity/PushOrder.class
deleted
100644 → 0
No preview for this file type
target/medicinal-supplier/WEB-INF/classes/com/phxl/modules/wechat/entity/RequestParams.class
deleted
100644 → 0
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
target/medicinal-supplier/WEB-INF/classes/com/phxl/modules/wechat/utils/WeChatUtils.class
deleted
100644 → 0
No preview for this file type
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
target/medicinal-supplier/WEB-INF/classes/mappings/billback/BillBackDetailMapper.xml
deleted
100644 → 0
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
target/medicinal-supplier/WEB-INF/classes/mappings/billsettlement/BillSettlementMapper.xml
deleted
100644 → 0
This diff is collapsed.
Click to expand it.
target/medicinal-supplier/WEB-INF/classes/mappings/ctcareprov/CTCareProvMapper.xml
deleted
100644 → 0
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
target/medicinal-supplier/WEB-INF/classes/mappings/invoiceback/SuInvoiceBackDetailMapper.xml
deleted
100644 → 0
This diff is collapsed.
Click to expand it.
target/medicinal-supplier/WEB-INF/classes/mappings/invoiceback/SuInvoiceBackMapper.xml
deleted
100644 → 0
This diff is collapsed.
Click to expand it.
target/medicinal-supplier/WEB-INF/classes/mappings/medinstore/MedInStoreDetailMapper.xml
deleted
100644 → 0
This diff is collapsed.
Click to expand it.
target/medicinal-supplier/WEB-INF/classes/mappings/medinstore/MedInStoreMapper.xml
deleted
100644 → 0
This diff is collapsed.
Click to expand it.
target/medicinal-supplier/WEB-INF/classes/mappings/medplan/MedPlanDetailMapper.xml
deleted
100644 → 0
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
target/medicinal-supplier/WEB-INF/classes/mappings/suoutstore/SuOutStoreDetailMapper.xml
deleted
100644 → 0
This diff is collapsed.
Click to expand it.
target/medicinal-supplier/WEB-INF/classes/mappings/suoutstore/SuOutStoreMapper.xml
deleted
100644 → 0
This diff is collapsed.
Click to expand it.
target/medicinal-supplier/WEB-INF/classes/mappings/supplierstock/SupplierStockMapper.xml
deleted
100644 → 0
This diff is collapsed.
Click to expand it.
target/medicinal-supplier/WEB-INF/classes/mappings/supplygoods/MedSupplyGoodsMapper.xml
deleted
100644 → 0
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff could not be displayed because it is too large.
-
Please register or sign in to post a comment